1.5站點管理
- 站點 : 分為
內容發布和公共訪問兩部分 - 內容發布 的部分由網站的管理員負責查看、添加、修改、刪除數據
Django能夠根據定義的模型類自動地生成管理模塊- 使用
Django的管理模塊, 需要按照如下步驟操作 :- 1.管理界面本地化
- 2.創建管理員
- 3.注冊模型類
- 4.發布內容到數據庫
- 5.自定義站點管理頁面
1.管理界面本地化
- 本地化是將顯示的語言、時間等使用本地的習慣,這里的本地化就是進行中國化.
- 中國大陸地區使用
簡體中文, 時區使用亞洲/上海時區, 注意這里不使用北京時區. -
本地化前

-
本地化后

2.創建管理員
-
創建管理員的命令 :
python manage.py createsuperuser
-
按提示輸入用戶名、郵箱、密碼
-

-
登陸站點 :
http://127.0.0.1:8000/admin -
需要服務器是啟動狀態
-
-
登陸站點成功
-
站點界面中沒有書籍和人物管理入口,因為沒有注冊模型類

-
-
3.注冊模型類
-
在
應用的admin.py文件中注冊模型類-
需要導入模型模塊 :
from models import *

-
-
注冊模型后


注冊模型成功后, 就可以在站點管理界面方便快速的管理數據.
4.發布內容到數據庫

-
發布內容后,優化模型類展示
class BookInfo(models.Model): """定義書籍信息模型類""" name = models.CharField(max_length=10) def __str__(self): """將模型類以字符串的方式輸出""" return self.name


5.自定義站點管理頁面
-
自定義站點管理界面前


-
如果想在站點界面中展示詳細的字段信息,需要自定義管理頁面
-
即 在
應用的admin.py文件中需要重新注冊模型類- 新建類繼承自
admin.ModelAdmin - 重寫
list_display,指定需要展示的字段 -
將
PeopleAdmin注冊到站點# 自定義站點管理界面的類 : 重寫list_display屬性 class PeopleAdmin(admin.ModelAdmin): list_display = ['id','name','gender','book'] # 注冊人物模型 admin.site.register(PeopleInfo,PeopleAdmin)
- 新建類繼承自
-
自定義站點管理界面后

1.6視圖和URL
- 站點管理頁面做好了, 接下來就要做
公共訪問的頁面了. - 對於
Django的設計框架MVT.- 用戶在URL中請求的是視圖.
- 視圖接收請求后進行處理.
- 並將處理的結果返回給請求者.
- 使用視圖時需要進行兩步操作
- 1.定義視圖
- 2.配置URLconf
1. 定義視圖
- 視圖就是一個
Python函數,被定義在應用的views.py中. - 視圖的第一個參數是
HttpRequest類型的對象reqeust,包含了所有請求信息. - 視圖必須返回
HttpResponse對象,包含返回給請求者的響應信息. -
需要導入
HttpResponse模塊 :from django.http import HttpResponse -
定義視圖函數 : 響應字符串
OK!給客戶端

思考 : 如何才能讓請求找到視圖?
2. 配置URLconf
-
查找視圖的過程 :
- 1.請求者在瀏覽器地址欄中輸入URL, 請求到網站.
- 2.網站獲取URL信息.
- 3.然后與編寫好的URLconf逐條匹配.
- 4.如果匹配成功則調用對應的視圖.
-
5.如果所有的URLconf都沒有匹配成功.則返回404錯誤.


-
URLconf入口

-
需要兩步完成
URLconf配置- 1.在
項目中定義URLconf - 2.在
應用中定義URLconf
- 1.在
-
在
項目中定義URLconf

-
在
應用中定義URLconf-
提示:一條
URLconf包括URL規則、視圖兩部分- URL規則使用正則表達式定義.
-
視圖就是在
views.py中定義的視圖函數.

-
3. 測試:請求訪問
-
http://127.0.0.1:8000/
1.7總結View和URL匹配流程

1.8模板
思考 : 網站如何向客戶端返回一個漂亮的頁面呢?
-
提示 :
- 漂亮的頁面需要
html、css、js. - 可以把這一堆字段串全都寫到視圖中, 作為
HttpResponse()的參數,響應給客戶端.
- 漂亮的頁面需要
-
問題 :
- 視圖部分代碼臃腫, 耦合度高.
- 這樣定義的字符串是不會出任何效果和錯誤的.
- 效果無法及時查看.有錯也不容易及時發現.
-
設想 :
- 是否可以有一個專門定義前端頁面的地方, 效果可以及時展示,錯誤可以及時發現,並且可以降低模塊間耦合度!
-
解決問題 : 模板
MVT設計模式中的T,Template
-
在
Django中, 將前端的內容定義在模板中, 然后再把模板交給視圖調用, 各種漂亮、炫酷的效果就出現了.
模板使用步驟
- 1.創建模板
- 2.設置模板查找路徑
- 3.模板接收視圖傳入的數據
- 4.模板處理數據
1.創建模板
- 在
應用同級目錄下創建模板文件夾templates. 文件夾名稱固定寫法. - 在
templates文件夾下, 創建應用同名文件夾. 例,Book -
在
應用同名文件夾下創建網頁模板文件. 例 :index.html

2.設置模板查找路徑


3.模板接收視圖傳入的數據
-
模板查找全路徑 :
os.path.join(BASE_DIR,'templates'+'Book/index.html'

4.模板處理數據


5. 查看模板處理數據成果

1.9總結View-Templates流程

1.10總結MVT流程

