Django(1)初識Django


前言

Django是一個開放源代碼的Web應用框架,由Python寫成,最初用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站,即CMS(內容管理系統)軟件,於2005年7月在BSD許可證下發布,這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。Django采用了MTV的框架模式,即模型Model、模板Template和視圖(Views),三者之間各自負責不同的職責。

  • 模型:數據存取層,處理與數據相關的所有事物,例如如何存取、如何驗證有效性、包含哪些行為以及數據之間的關系等。
  • 模板:表現層,處理與表現相關的決定,例如如何在頁面或其他類型的文檔中進行顯示。
  • 視圖:業務邏輯層,存取模型及調取恰當模板的相關邏輯,模型與模板的橋梁

Django的主要目的是簡便、快速地開發數據庫驅動的網站。它強調代碼復用,多個組件可以很方便地以插件形式服務於整個框架。Django有許多功能強大的第三方插件,可以很方便地開發出自己的工具包,這使得Django具有很強的可擴展性。此外,Django還強調快速開發和DRY(Do Not Repeat Yourself)原則。Django基於MTV的設計十分優美,其具有以下特點:

  • 對象映射關系(Object Relational Mapping, ORM):通過定義映射類來構建數據模型,將模型與關系數據庫連接起來,使用ORM框架內置的數據庫接口可實現復雜的數據操作。
  • URL設計:開發者可以設計任意的URL(網站地址),而且還支持使用正則表達式設計
  • 模板系統:提供可擴展的模板語言,模板之間具有可繼承性
  • 表單處理:可以生成各種表單模型,而且表單具有有效性檢驗功能
  • Cache系統:完善的緩存系統,可支持多種緩存方式
  • Auth認證系統:提供用戶認證、權限設置和用戶組功能,功能擴展性強
  • 國際化:內置國際化系統,方便開發出多種語言的網站
  • Admin后台系統:內置Admin后台管理系統,系統擴展性強
     

Django2的新特性

  • 簡化URL路由語法:使得Django.urls.path()方法的語法更簡單。功能的導入由模塊Django.urls實現,如from Django.urls import include,path,re_path
  • Admin后台系統:支持主流移動設備並新增屬性ModelAdmin.autocomplete_fields和方法ModelAdmin,get_autocomplete_fields()
  • 用戶認證:PBKDF2密碼哈希默認的迭代次數從36000增加到100000
  • Cache(緩存):cache.set_many()現在返回一個列表,包含插入失敗的鍵值
  • 視圖類:ContextMixin,extra_context屬性允許在View.as_view()中添加上下文
  • Pagination(分頁):增加Paginator.get_page()`,可以處理各種非法頁面參數,防止異常
  • Templates(模板):提高Engine.get_default()在第三方模塊的用途
  • Vaildators(驗證器):不允許CharField及其子類的表單輸入為空
  • File Storage(文件存儲):File.open()可以用於上下文管理器,例如with file open() as f
  • 連接MySQL不再使用mysqldb模塊,改為mysqlclient,兩者之間並沒有太大的使用差異
  • Management Commands(管理命令):inspectdbMySQL的無符號整數視作PositiveIntegerField或者PositiveSmallIntegerField字段類型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM