亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python中的django是做什么的

瀏覽:2日期:2022-07-15 16:13:30

Django是什么?

Django是一個基于Python的Web應用框架。它與Python的另外一個Web 框架 Flask最大的區別是,它奉行 “包含一切” 的哲學。該理念即為:創建 Web 應用所需的通用功能都應該包含到框架中,而不應存在于獨立的軟件包中。例如,身份驗證、 URL 路由、 模板系統、 對象關系映射 (ORM) 和 數據庫遷移等功能都已包含在Django 框架中。雖然看上去失去了一些彈性,但是卻可以讓你在構建網站的時候更加有效率。

由于Django最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的。所以,我們可以發現在使用Django的很多網站里,都是用于作為CMS(內容管理系統)來使用的。

Django的工作方式

Django是一個MTV框架,其架構模板看上去與傳統的MVC架構并沒有太大的區別。Django將MVC中的視圖進一步分解為 Django視圖 和 Django模板兩個部分,分別決定 “展現哪些數據” 和 “如何展現”,使得Django的模板可以根據需要隨時替換,而不僅僅限制于內置的模板。至于MVC控制器部分,由Django框架的URLconf來實現。

具體流程:

瀏覽器進行HTTP request;

Django根據URL configuration分配至對應的View;

View進行數據庫的操作或其它運算;

View層將數據發送到Template進行渲染,并傳回HttpResponse內容;

瀏覽器根據HTTP response顯示網頁內容。

Django框架的核心包括:一個面向對象的映射器(ORM),用作數據模型(以Python類的形式定義)和關系性數據庫間的媒介;一個基于正則表達式的URL分發器;一個視圖系統,用于處理請求;以及一個模板系統。除此之外還包含:

一個輕量級的、獨立的Web服務器,用于開發和測試。

一個表單序列化及驗證系統,用于HTML表單和適于數據庫存儲的數據之間的轉換。

一個緩存框架,并有幾種緩存方式可供選擇。

中間件支持,允許對請求處理的各個階段進行干涉。

內置的分發系統允許應用程序中的組件采用預定義的信號進行相互間的通信。

一個序列化系統,能夠生成或讀取采用XML或JSON表示的Django模型實例。

一個用于擴展模板引擎的能力的系統。

一個可擴展的認證系統,用戶登錄與權限檢查,快速開發用戶會話功能。

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

自動化的管理界面:不需要你花大量的工作來創建人員管理和更新內容。

一組產生 RSS 和 Atom 的工具和產生Google 站點地圖 (Google Sitemaps)的工具

一套支持輕量級標記語言(Textile和Markdown)的模板庫

一套協助創建地理信息系統(GIS)的基礎框架

一個靈活的評論系統

防止跨站請求偽造(cross-site request forgery)的工具

優缺點總結

Django的主要目標是使得開發復雜的、數據庫驅動的網站變得簡單。Django注重組件的重用性和“可插拔性”,敏捷開發和DRY法則(Don’t Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和數據模型。

Django優點:

完美的文檔,Django近乎完美的官方文檔。

全套的解決方案(full-stackframework + batteries included),基本要什么有什么(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,開發網站應手的工具Django基本都給你做好了,因此開發效率是不用說的。

強大的URL路由配置,Django讓你可以設計出非常優雅的URL。

自助管理后臺,讓你幾乎不用寫一行代碼就擁有一個完整的后臺管理界面。

Django的缺點:(源自Django堅持自己造所有的輪子,整個系統相對封閉)

系統緊耦合,如果你覺得Django內置的某項功能不是很好,想用喜歡的第三方庫來代替是很難的,比如說的ORM、Template。要在Django里用SQLAlchemy或Mako幾乎是不可能,即使打了一些補丁用上了也會讓你覺得非常非常別扭。

自帶的ORM遠不如SQLAlchemy強大,SQLAlchemy是Python世界里事實上的ORM標準,其它框架都支持SQLAlchemy了,唯獨Django仍然堅持自己的那一套。

Template功能比較弱,不能插入Python代碼,要寫復雜一點的邏輯需要另外用Python實現Tag或Filter。

URL配置雖然強大,但全部要手寫,高手和初識Django的人配出來的URL會有很大差異。

Django的auth跟其它模塊結合緊密,功能也挺強,但做的有點過了,用戶的數據庫schema都給你定好了,比如很多網站要求email地址唯一,可schema里這個字段的值不是唯一的。

內容擴展:

讓我們首先以外行人的話來說明當您的服務器收到網站請求時會發生什么。請求被傳遞給Django并嘗試分析此請求。URL解析程序嘗試將URL與模式列表進行匹配。它從上到下執行此匹配。如果它可以找到匹配并將請求傳遞給視圖,這是相關的功能。該函數 view 可以檢查是否允許請求。它還會生成響應,然后Django將其發送到用戶的Web瀏覽器。

Django框架的歷史

Adrian Holovaty和Simon Willison于2003年秋季在Lawrence Journal-World報紙上創建了Django。 Django于2005年7月在BSD許可下公開發布; 以吉他手Django Reinhardt命名。 今天,Django是一個開源項目,在世界各地都有貢獻者。

到此這篇關于python中的django是做什么的的文章就介紹到這了,更多相關django是什么內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日韩videossex另类 | 国产一区在线视频观看 | 欧美日韩不卡中文字幕在线 | 8x永久免费观看成人影院 | 久久午夜青青草原影院 | 日本www色视频成人免费免费 | 亚洲精品中文字幕乱码影院 | 香蕉性视频 | 91最新视频在线观看 | 欧美日韩成人在线观看 | 久久午夜羞羞影院免费观看 | 免费看黄在线网站 | 亚洲欧美久久精品1区2区 | 日产一区二区三区精品视频 | 免费成人午夜视频 | 91视频久久久久 | 免费观看国产精品视频 | 国产精品白丝喷水在线观看 | 免费观看亚洲 | 亚洲欧美另类在线视频 | 日韩国产欧美在线观看 | 成年午夜性视频免费播放 | 自拍 欧美 在线 综合 另类 | 国产成人18黄网站免费 | 看真人视频一一级毛片 | 草草福利视频 | 人人爽久久涩噜噜噜蜜桃 | 性视频网站视频免费 | 婷婷综合 在线 | 欧美一级毛片国产一级毛片 | 国产自在自线2021 | 国产在线欧美精品 | 自拍 欧美 在线 综合 另类 | 月婷婷色狠狠 | 国产精品柏欣彤在线观看 | 欧美成人免费网在线观看 | 国产一级毛片午夜福 | 人人做天天爱夜夜爽中字 | 成年片美女福利视频在线 | 色综合久久精品中文字幕 | 男人看片资源 |