Day43-Django的模型及數據交互

        我學得比較慢,今天總算把模型這一塊勉強搞完了。從昨天的學習內容繼續開始,已經生成了books這個新數據庫,那麼如何創建表單,又如何訪問數據,如何對數據進行交互管理,增刪改查呢?

1.先考慮從Python方面增加數據庫的內容,修改books數據庫的視圖views文件:

from django.http import HttpResponse
from books.models import Publisher


def add_book(request):
    p1 = Publisher.objects.create(name='Apress', address='2855 Telegraph Avenue',
                    city='Berkeley', state_province='CA', country='U.S.A',
                    website='http://www.apress.com')
    p1.save()

    p2 = Publisher.objects.create(name="O'Reilly", address='10 Fawcett St.',
                   city='Cambridge', state_province='MA', country='U.S.A',
                   website='http://www.oreilly.com')
    p2.save()

    return HttpResponse('添加成功')

導入了模型的Publisher類型,開始進行對象的實例化。創建了兩條數據p1和p2。跟sql的創建表單語法等效。然後在項目總目錄的urls文件內增加一個api:

books數據庫內的urls文件也要修改:

from django.conf.urls import url
from books import views


urlpatterns = [
    url(r'addbk/', views.add_book),
]

好了,進入虛擬環境啓動服務器:

然後進入瀏覽器輸入相應鏈接:

再進入數據庫刷新後,就能看到兩條數據已經生成了:

其實這樣的數據生成方式是單一的,應該可以進行更多種的數據創建。比如可以由用戶進入頁面進行操作,然後生成相應數據庫的數據。

2. 我們來創建用戶:

python manage.py createsuperuser

輸入想用的用戶名,然後按回車鍵:
Username: admin
接下來會提示你輸入電子郵件地址:
Email address: [email protected]
最後,輸入密碼。密碼要輸入兩次,第二次是對第一次的確認。
Password: **********
Password (again): *********

Superuser created successfully.

然後修改books數據庫的admin.py文件:

from django.contrib import admin
from .models import Publisher, Author, Book


@admin.register(Publisher)
class PublisherAdmin(admin.ModelAdmin):
    list_display = ['id', 'name', 'address', 'state_province', 'country']


admin.site.register(Author)
admin.site.register(Book)

其實創建類跟最後兩條語句的目的是一樣的,都是將相關表單數據加入到admin管理後臺中去。但使用了register這個裝飾器之後,有很多不清楚的方法給封裝進去了,具體是什麼我也沒搞清。最直觀的一個效果就是少寫1,2行代碼。關鍵其實是list_display這個方法,在Django裏面的獨特方法。如果沒有它,那麼所有的標籤都自動顯示類名,不好看不方便。

3. 再次通過瀏覽器登陸,輸入剛纔的賬號和密碼:

可以看到我們的books數據庫已經成功進入了後臺,可以通過頁面進行數據庫的增刪改查了!

選擇Publishers是這樣的效果:


而選擇books是這樣的:


由此可以看出剛纔list_display的作用,我們的可視化界面更加人性化和簡單直觀。

醬紫一來,就可以通過管理後臺進行數據庫的各種操作了,於是這個Django基礎案例纔算基本圓滿完成!後續才能繼續進行各種錯綜複雜的Django高級模板與數據庫的交互工作。並且後續還有高級模型與高級視圖等,想想都頭大啊頭大。三天了,我纔算把這些基礎基本搞明白。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章