django

django

Python Web 框架
Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MTV的框架模式,即模型M,視圖V和模版T。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞内容為主的網站的,即是CMS(内容管理系統)軟件。并于2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。2019年12月2日,Django3.0發布。
    中文名:Django 外文名:Django 适用領域: 所屬學科: 編程語言:Python 特性:ORM、URL分發系統、MVC 最新版本:1.7.7(2015-03-18)

框架介紹

Django項目是一個python定制框架,它源自一個在線新聞Web站點,于2005年以開源的形式被釋放出來。Django框架的核心組件有:

用于創建模型的對象關系映射

為最終用戶設計的完美管理界面

一流的URL設計

設計者友好的模闆語言

緩存系統。

Django(發音:[`dʒæŋɡəʊ])是用python語言寫的開源web開發框架(opensourcewebframework),它鼓勵快速開發,并遵循MVC設計。Django遵守BSD版權,初次發布于2

005年7月,并于2008年9月發布了第一個正式版本1.0。

Django根據比利時的爵士音樂家DjangoReinhardt命名,他是一個吉普賽人,主要以演奏吉它為主,還演奏過小提琴等。

由于Django在近年來的迅速發展,應用越來越廣泛,被著名IT開發雜志SDTimes評選為2013SDTimes100,位列“API、庫和框架”分類第6位,被認為是該領域的佼佼者。

架構設計

Django是一個基于MVC構造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以Django裡更關注的是模型(Model)、模闆(Template)和視圖(Views),稱為MTV模式。它們各自的職責如下:

層次

職責

模型(Model),即數據存取層

處理與數據相關的所有事務:如何存取、如何驗證有效性、包含哪些行為以及數據之間的關系等。

模闆(Template),即表現層

處理與表現相關的決定:如何在頁面或其他類型文檔中進行顯示。

視圖(View),即業務邏輯層

存取模型及調取恰當模闆的相關邏輯。模型與模闆之間的橋梁。

從以上表述可以看出Django視圖不處理用戶輸入,而僅僅決定要展現哪些數據給用戶,而Django模闆僅僅決定如何展現Django視圖指定的數據。或者說,Django将MVC中的視圖進一步分解為Django視圖和Django模闆兩個部分,分别決定“展現哪些數據”和“如何展現”,使得Django的模闆可以根據需要随時替換,而不僅僅限制于内置的模闆。

至于MVC控制器部分,由Django框架的URLconf來實現。URLconf機制是使用正則表達式匹配URL,然後調用合适的Python函數。URLconf對于URL的規則沒有任何限制,你完全可以設計成任意的URL風格,不管是傳統的,RESTful的,或者是另類的。

框架把控制層給封裝了,無非與數據交互這層都是數據庫表的讀,寫,删除,更新的操作.在寫程序的時候,隻要調用相應的方法就行了,感覺很方便。程序員把控制層東西交給Django自動完成了。隻需要編寫非常少的代碼完成很多的事情。所以,它比MVC框架考慮的問題要深一步,因為我們程序員大都在寫控制層的程序。現在這個工作交給了框架,僅需寫很少的調用代碼,大大提高了工作效率。

設計哲學

Django的主要目的是簡便、快速的開發數據庫驅動的網站。它強調代碼複用,多個組件可以很方便的以“插件”形式服務于整個框架,Django有許多功能強大的第三方插件,你甚至可以很方便的開發出自己的工具包。這使得Django具有很強的可擴展性。它還強調快速開發和DRY(DoNotRepeatYourself)原則。

Django基于MVC的設計十分優美:

對象關系映射(ORM,object-relationalmapping):以Python類形式定義你的數據模型,ORM将模型與關系數據庫連接起來,你将得到一個非常容易使用的數據庫API,同時你也可以在Django中使用原始的SQL語句。

URL分派:使用正則表達式匹配URL,你可以設計任意的URL,沒有框架的特定限定。像你喜歡的一樣靈活

模版系統:使用Django強大而可擴展的模闆語言,可以分隔設計、内容和Python代碼。并且具有可繼承性。

表單處理:你可以方便的生成各種表單模型,實現表單的有效性檢驗。可以方便的從你定義的模型實例生成相應的表單。

Cache系統:可以挂在内存緩沖或其它的框架實現超級緩沖--實現你所需要的粒度。

會話(session),用戶登錄與權限檢查,快速開發用戶會話功能。

國際化:内置國際化系統,方便開發出多種語言的網站。

自動化的管理界面:不需要你花大量的工作來創建人員管理和更新内容。Django自帶一個ADMINsite,類似于内容管理系統。

工作機制

1.用manage.pyrunserver啟動Django服務器時就載入了在同一目錄下的settings.py。該文件包含了項目中的配置信息,如前面講的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告訴Django哪個Python模塊應該用作本站的URLConf,默認的是urls.py

2.當訪問url的時候,Django會根據ROOT_URLCONF的設置來裝載URLConf。

3.然後按順序逐個匹配URLConf裡的URLpatterns。如果找到則會調用相關聯的視圖函數,并把HttpRequest對象作為第一個參數(通常是request)

4.最後該view函數負責返回一個HttpResponse對象。

部署

Django可以運行在Apache上,也可以運行在支持WSGI,FastCGI的服務器上。支持多種數據庫,已經支持Postgresql,MySql,Sqlite3,Oracle。GoogleAppEngine也支持Django的某些部分,國内支持的平台有(SAE)SinaAppEngine,(BAE)百度應用引擎。

文檔

Django1.0建立了強大完整的文檔體系,,涵蓋了Django的方方面面,并且适合各種水平的讀者和開發者.其中還包含若幹個簡單的示例,你可以跟随他們一步步體驗Django的優美。

截至目前,Django最新版本是1.7.7,1.7系列版本的文檔非常的全面,主要由以下幾部分組成:

Firststeps,提供一個快速起步的教程,可以很快開始使用Django

Themodellayer,介紹Django的抽象模型層

Theviewlayer,介紹Django的視圖層

Thetemplatelayer,介紹Django的模闆層

Forms,介紹Django提供的一系列用于幫助使用表單的工具

Thedevelopmentprocess,介紹Django提供的一系列用于開發和測試的工具

Theadmin,介紹Django提供的用于站點、内容管理的工具

Security,介紹Django提供的用于站點安全控制的工具

Internationalizationandlocalization,介紹Django提供的用于全球化和本地化的工具

Performanceandoptimization,介紹Django提供的用于性能和優化的方面的工具以及建議

Pythoncompatibility,介紹Django在不同Python環境下的兼容性(Jython和Python3)

Geographicframework,介紹Django提供的地理位置相關的工具

Commonwebapplicationtools,介紹Django提供的一些常用的Web應用程序工具(比如RSS等)

Othercorefunctionalities,介紹Django提供的其它重要工具(比如跳轉、路由等等)

Thedjangoopensourceproject,介紹Django作為開源項目的一些内容,比如設計哲學,如何參與開發等等。

學習網站

Django+Python終極學習站點(一人一Python)

django官方網站

Djangodocumentation

TheDjangoBook

上一篇:thousand

下一篇:spring

相關詞條

相關搜索

其它詞條