Python Django基礎教程(四)(admin站點管理)

HuangZhang_123發表於2017-04-25

本人新書《玩轉Python網路爬蟲》,可在天貓、京東等商城搜尋查閱或通過右側圖書連結購買,專案深入淺出,適合爬蟲初學者或者是已經有一些網路爬蟲編寫經驗,但希望更加全面、深入理解Python爬蟲的開發人員。


Django版本:1.11
作業系統:Windows
Python:3.5
歡迎加入學習交流QQ群:657341423


Django站點管理(admin)
專案架構
這裡寫圖片描述


構建Django站點

站點管理講得通俗一點,就是我們可以通過web方式,直接管理整個網站的資料,主要體現在管理資料庫資料。
畢竟一個網站的管理人員不會直接通過資料庫去管理的,而且管理人員基本上都不會是開發人員。所以這個對於非開發人員來說,是更好維護這個網站執行和管理。
基本上,Django已有一套admin的站點管理工具。我們直接配置一下即可使用。

設定:admin的url地址。
這裡寫圖片描述

設定setting.py檔案
這裡寫圖片描述
其中’django.middleware.locale.LocaleMiddleware’是自行加入的,這個是將站點顯示中文。必需在’django.contrib.sessions.middleware.SessionMiddleware’後面。
其餘的基本上在新建專案的時候已有的。

再看一下之前app裡面的models檔案,這裡為了下面的更好體現,比上一章的models做了稍微的修改。
這裡寫圖片描述

檢視一下資料庫,這裡我將上一章的資料表清空了,這裡重新新建過
這裡寫圖片描述
這裡包含了設定欄位可選這個功能,就是models裡面的blank=True和null = True,當你新增blank=True以後,標籤不再是粗體了,這時候說明這欄位可以為空的。

如果你想允許一個日期型(DateField、TimeField、DateTimeField)或數字型(IntegerField、DecimalField、FloatField)欄位為空,你需要使用null=True 和 blank=True。
其餘的直接用blank=True即可

這裡寫圖片描述

新建資料表
這裡寫圖片描述
這裡寫圖片描述

執行伺服器,開啟http://127.0.0.1:8000/admin/
這裡寫圖片描述

發現需要登入才能進入管理。那麼我們需要建立帳號密碼。新開啟一個cmd,輸入
這裡寫圖片描述
可以看到,輸入使用者名稱,郵箱,密碼(在輸入密碼的時候,是看不到任何顯示的),回車完成。

然後在網頁上輸入剛才的帳號密碼,登入
這裡寫圖片描述

我們發現,這裡只有一個‘認證和授權’的管理,這個是建立這個站點其他管理人員的帳號和許可權。
這樣就構建了一個站點管理的


在站點中加入其他模型。
我們在app的polls中admin.py中輸入
這裡寫圖片描述
檢視web
這裡寫圖片描述
發覺這是一個最簡單的管理介面。當我點選‘增加 PUBLISHER’的時候,輸入資訊後儲存
這裡寫圖片描述
這裡寫圖片描述
看到這裡顯示2條資料,我們直接檢視資料庫
這裡寫圖片描述
發現可以通過站點管理直接對資料進行管理和維護。
但很多時候,我們還需要一些自定義的功能進行維護。比如web中只是顯示了”測試-adfadf”,”luna-佛山”,如果我需要更多資料,而且也需要排序呢?

實現方式:
我們可以在app的polls中admin.py新建一個子類,繼承admin.ModelAdmin
這裡寫圖片描述

檢視web
這裡寫圖片描述
這裡寫圖片描述

總結:
這裡寫圖片描述

上圖所示,一共有三組,分別是DJAPPTEST,POLLS,認證和授權,分別代表三個app。其中認證和授權是django自帶的。其餘是使用者自定義的。每個app裡面的Autors,Publishers等分別代表各自models.py的class,也就是資料庫裡面的表。


這裡寫圖片描述
每個表裡面的操作(增刪改查)等於資料庫的操作以及裡面的顯示方式在各自app裡面admin.py裡自定義class進行,每個class對應models.py的class。


最後一點,切勿忘記整個專案裡面的urls.py和settings.py檔案設定。

相關文章