Django基礎概念和MVT架構(二)

1.5站點管理

  • 站點 : 分爲內容發佈公共訪問兩部分
  • 內容發佈 的部分由網站的管理員負責查看、添加、修改、刪除數據
  • Django可以根據定義的模型類自動地生成管理模塊
  • 使用Django的管理模塊, 須要按照以下步驟操做 :
    • 1.管理界面本地化
    • 2.建立管理員
    • 3.註冊模型類
    • 4.發佈內容到數據庫
    • 5.自定義站點管理頁面

1.管理界面本地化

  • 本地化是將顯示的語言、時間等使用本地的習慣,這裏的本地化就是進行中國化.
  • 中國大陸地區使用簡體中文, 時區使用亞洲/上海時區, 注意這裏不使用北京時區.
  • 本地化前

    css

    • 本地化後

 

2.建立管理員

  • 建立管理員的命令 :html

    python manage.py createsuperuser
  • 按提示輸入用戶名、郵箱、密碼前端

  •  

  • 登錄站點 : http://127.0.0.1:8000/adminpython

  • 須要服務器是啓動狀態

    正則表達式

    • 登錄站點成功

      • 站點界面中沒有書籍和人物管理入口,由於沒有註冊模型類

        數據庫

3.註冊模型類

  • 應用admin.py文件中註冊模型類django

    • 須要導入模型模塊 : 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
  • 項目中定義URLconf

  • 應用中定義URLconf

    • 提示:一條URLconf包括URL規則、視圖兩部分

      • URL規則使用正則表達式定義.
      • 視圖就是在views.py中定義的視圖函數.

3. 測試:請求訪問

  • http://127.0.0.1:8000/

1.7總結View和URL匹配流程

1.8模板

思考 : 網站如何向客戶端返回一個漂亮的頁面呢?

  • 提示 :

    • 漂亮的頁面須要htmlcssjs.
    • 能夠把這一堆字段串全都寫到視圖中, 做爲HttpResponse()的參數,響應給客戶端.
  • 問題 :

    • 視圖部分代碼臃腫, 耦合度高.
    • 這樣定義的字符串是不會出任何效果和錯誤的.
    • 效果沒法及時查看.有錯也不容易及時發現.
  • 設想 :

    • 是否能夠有一個專門定義前端頁面的地方, 效果能夠及時展現,錯誤能夠及時發現,而且能夠下降模塊間耦合度!
  • 解決問題 : 模板

    • MVT設計模式中的TTemplate
  • 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流程

相關文章
相關標籤/搜索