【Django必備01】——什麼是Django框架?有什麼優勢?模組組成介紹。

01.什麼是Django框架?

Django是一個開放源程式碼的Web應用框架,由Python寫成。採用了MTV的框架模式。使用這種架構,程式設計師可以方便、快捷地創建高品質、易維護、資料庫驅動的應用程式。它還包含許多功能強大的第三方插件,使得Django具有較強的可擴展性。


 

02.Django對web開發有哪些優勢

  • 功能完善、要素齊全:該有的、可以沒有的都有,自帶大量常用工具和框架,無須你自定義、組合、增刪及修改。
  • 完善的文檔:經過十多年的發展和完善,Django有廣泛的實踐案例和完善的在線文檔。開發者遇到問題時可以搜索在線文檔尋求解決方案。
  • 強大的資料庫訪問組件:Django的Model層自帶資料庫ORM組件,使得開發者無須學習其他資料庫訪問技術(SQL、pymysql、SQLALchemy等)。
  • 靈活的URL映射:Django使用正則表達式管理URL映射,靈活性高。新版的2.0,進一步提高了URL編寫的優雅性。
  • 豐富的Template模板語言:類似jinjia模板語言,不但原生功能豐富,還可以自定義模板標籤,並且與其ORM的用法非常相似。
  • 自帶後台管理系統admin:只需要通過簡單的幾行配置和程式碼就可以實現一個完整的後台數據管理控制平台。
  • 完整的錯誤資訊提示:在開發調試過程中如果出現運行錯誤或者異常,Django可以提供非常完整的錯誤資訊幫助定位問題

 

03.簡述Django項目的組成模組

初級 Django

  1. Project
    • 工程
  2. Apps
    • 應用
  3. Model
    • 模型
  4. URL Route
    • URL分配器
  5. View
    • 視圖
  6. DTL
    • 模板系統
  7. Admin
    • 管理介面
  8. Cache System
    • 快取系統

 

以下詳細參考:

  • 工程

  工程是承載了Django實例的所有設置的Python程式包。大部分情況下,一個Web站點就是一個工程。工程內可以新建及存放該工程固有的應用,或者保存Web站點的設置(資料庫設置、Django的選項設置、各應用的設置等)

  • 應用

  對於Django而言,應用之的是表示單一工程的Web應用的Python程式包。由於其本質就是Python程式包,因此方法PYTHONPATH有效地任何位置都沒有問題。這裡最好盡量減少應用與工程、應用於應用之間的依賴關係,做到功能獨立,以便在其他工程中重複利用。

  • 模型

  Django提供了O/R映射工具,因此可以用Python程式碼來描述資料庫布局。   每個模型都是繼承了django.db.models.Model類的Python的類,分別對應資料庫中的一個表格。通過建資料庫的欄位、關係、行為定義為模型類的屬性或方法,我們可以使用豐富且靈活的資料庫方位API。

  • URL分配器

  URL分配器機制使得URL資訊不再受框架及擴展名的制約,從而讓Web應用的URL設計保持簡介。
  URl在URlconf模組中進行描述,URLconf模組中包含使用正則表達式書寫的URL和Python函數的映像。URlconf能夠以應用為單位進行分割,因此提高了應用的可重複利用性。另外,我們可以利用給URL設置名稱並定義的方式讓程式碼和目標直接通過該名稱調用URL,從而將URL設計與程式碼分離。

  • 視圖

  Django的視圖時一類函數,它能夠生成指定頁面的HttpResponse對象或像Http 404這樣的異常情況,返回HTTP請求。典型的視圖函數的處理流程通常是從請求參數中獲取數據,讀取模型,熱按後根據獲取的數據渲染模板。

  • 模板系統

  在Django的概念中,模板系統只負責顯示,並不是編寫邏輯程式碼的環境。因此Django的模板系統將設計與內容、程式碼分離開來,是一共功能強、擴展性高、對設計者很友好的模板語言。
  模板基於文本而不是XML,因此它不但能生成XML和HTML,還能生成E-mail、JavaScript、CSV等任意文本格式。
  另外,如果使用模板繼承功能,子模板只需要將父模板中預留的空位填滿即可。我們在編寫模板時只需要描述各個模板獨有的部分,因此可以省去重複冗餘的編碼過程。

  • 管理介面

  大多Web應用在運行過程中,都需要一個專供擁有管理員許可權的用戶添加、編輯、刪除數據的介面,但是實際製作這個介面並不容易。
  Django只需將已經完工的模型添加到管理站點,就能根據模型定義,動態地生成頁面。為我們提供一個功能齊全的管理介面。

  • 快取系統

  Django可以使用memcached等快取後端輕鬆地快取數據。比如可以將動態頁面的渲染結果快取下來,等到下次需要時直接讀取快取,從而不必每次都對動態頁面進行處理。
  快取的後端可以從memcached、資料庫、文件系統、本地記憶體等位置進行選擇。快取對象也支援整個網站、特定的整個視圖、部分模板、特定數據等。