Django是一種在數據科學社區被廣泛采用的Python Web應用程序框架。
Django的起源造就了它的開源社區文化。Django最初是由美國堪薩斯州的一個Web開發團隊編寫的,誕生于2003年秋天。當時,開發團隊需要維護當地的幾個新聞站點,于是開發出一種節約時間的Web框架。2005年6月,Django以開源軟件的形式被發布。經過這些年的發展,Django已經是一個擁有成千上萬用戶和貢獻者的開源項目。Django的兩個創始人Adrian和Jacob仍然在為Django把控方向,但是Django的發展更多依靠社區團隊的合作,用于解決Web開發者們在開發中不斷遇到的問題。本質上說,Django是一個用Python編寫的類庫。要使用Django來開發網站,就需要編寫Python代碼來使用這些類庫。所以,學習Django其實就是學習如何用Python編程以及理解Django的運作方式。
Django適合構建可擴展的Web應用程序,適合構建有多種用戶角色的Web應用程序儀表板,用于創建便于溝通聯系的社交網絡站點,還可以靈活地針對跨平臺設備運行應用程序。
框架介紹
Django是高水準的Python編程語言驅動的一個開源模型.視圖,控制器風格的Web應用程序框架,它起源于開源社區。使用這種架構,程序員可以方便、快捷地創建高品質、易維護、數據庫驅動的應用程序。這也正是OpenStack的Horizon組件采用這種架構進行設計的主要原因。另外,在Django框架中,還包含許多功能強大的第三方插件,使得Django具有較強的可擴展性。Django項目源自一個在線新聞Web站點,于2005年以開源的形式被釋放出來。Django框架的核心組件有:
django 標志
Django(發音:[`d???ɡ??])是用Python語言寫的開源web開發框架(open source web framework),它鼓勵快速開發,并遵循MVC設計。Django遵守BSD版權,初次發布于2005年7月,并于2008年9月發布了第一個正式版本1.0。
Django根據比利時的爵士音樂家Django Reinhardt命名,他是一個吉普賽人,主要以演奏吉他為主,還演奏過小提琴等。
由于Django在近年來的迅速發展,應用越來越廣泛,被著名IT開發雜志SD Times評選為2013SD Times 100,位列“API、庫和框架”分類第6位,被認為是該領域的佼佼者。
架構設計
Django已經成為web開發者的首選框架,是一個遵循MVC設計模式的框架。MVC是Model、視圖、Controller三個單詞的簡寫,分別代表模型、視圖、控制器。Django其實也是一個全球音樂電視臺的設計模式。MTV是Model、Template、View三個單詞的簡寫,分別代表模型、模版、視圖。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以Django里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為MTV模式。它們各自的職責如下:
從以上表述可以看出Django視圖不處理用戶輸入,而僅僅決定要展現哪些數據給用戶,而Django模板僅僅決定如何展現Django視圖指定的數據。或者說,Django將MVC中的視圖進一步分解為Django視圖和Django模板兩個部分,分別決定“展現哪些數據”和“如何展現”,使得Django的模板可以根據需要隨時替換,而不僅僅限制于內置的模板。
至于MVC控制器部分,由Django框架的URLconf來實現。URLconf機制是使用正則表達式匹配URL,然后調用合適的Python函數。URLconf對于URL的規則沒有任何限制,你完全可以設計成任意的URL風格,不管是傳統的,RESTful的,或者是另類的。框架把控制層給封裝了,無非與數據交互這層都是數據庫表的讀,寫,刪除,更新的操作。在寫程序的時候,只要調用相應的方法就行了,感覺很方便。程序員把控制層東西交給Django自動完成了。 只需要編寫非常少的代碼完成很多的事情。所以,它比MVC框架考慮的問題要深一步,因為我們程序員大都在寫控制層的程序。這個工作交給了框架,僅需寫很少的調用代碼,大大提高了工作效率。
設計哲學
Django的主要目的是簡便、快速的開發數據庫驅動的網站。它強調代碼復用,多個組件可以很方便的以“插件”形式服務于整個框架,Django有許多功能強大的第三方插件,你甚至可以很方便的開發出自己的工具包。這使得Django具有很強的可擴展性。它還強調快速開發和DRY(Do Not Repeat Yourself)原則。
Django基于MVC的設計十分優美:
工作機制
工作機制
1.用manage .py runserver啟動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,Nginx上,也可以運行在支持WSGI,FastCGI的服務器上。支持多種數據庫,已經支持PostgreSQL,MySQL,SQLite3,Oracle數據庫。Google App Engine也支持Django的某些部分,國內支持的平臺有(SAE)Sina App Engine,(BAE)百度公司應用引擎。
文檔
Django1.0建立了強大完整的文檔體系,,涵蓋了Django的方方面面,并且適合各種水平的讀者和開發者.其中還包含若干個簡單的示例,你可以跟隨他們一步步體驗Django的優美。
Django版本主要由以下幾部分組成:
參考資料 >
Python Web應用程序框架Django的九種常見用途.51cto.com.2024-01-16
第一章:介紹Django.The Django Book.2024-01-16