国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Django 簡(jiǎn)介

2021-10-19 19:28 更新

Django 簡(jiǎn)介

Django 是用Python開發(fā)的一個(gè)免費(fèi)開源的Web框架,可以用于快速搭建高性能,優(yōu)雅的網(wǎng)站!采用了MVC的框架模式,即模型M,視圖V和控制器C,也可以稱為MVT模式,模型M,視圖V,模板T。

它最初是被開發(fā)來(lái)用于管理勞倫斯出版集團(tuán)旗下的一些以新聞內(nèi)容為主的站點(diǎn)的, 并于2005年7月在BSD許可證下公布.

這套框架是以比利時(shí)的吉普賽爵士吉他手Django Reinhardt來(lái)命名的.

Django 的主要目標(biāo)是使得開發(fā)復(fù)雜的、數(shù)據(jù)庫(kù)驅(qū)動(dòng)的網(wǎng)站變得簡(jiǎn)單。Django 注重組件的重用性和“可插拔性”,敏捷開發(fā)和 DRY 法則(Don’t Repeat Yourself)。在 Django 中 Python 被普遍使用,甚至包括配置文件和數(shù)據(jù)模型。

Django 于 2008 年 6 月 17 日正式成立基金會(huì)。

Django 架構(gòu)分析


Django 框架的組成部分

Django 框架的核心包括:

  • 一個(gè) 面向?qū)ο?的映射器,用作數(shù)據(jù)模型(以 Python 類的形式定義)和關(guān)系型數(shù)據(jù)庫(kù)間的介質(zhì);
  • 一個(gè)基于正則表達(dá)式的 URL 分發(fā)器;
  • 一個(gè)視圖系統(tǒng),用于處理請(qǐng)求;
  • 一個(gè)模板系統(tǒng)。

核心框架中還包括:

  • 一個(gè)輕量級(jí)的、獨(dú)立的 Web 服務(wù)器,用于開發(fā)和測(cè)試。
  • 一個(gè)表單序列化及驗(yàn)證系統(tǒng),用于 HTML 表單和適于數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)之間的轉(zhuǎn)換。
  • 一個(gè)緩存框架,并有幾種緩存方式可供選擇。
  • 中間件支持,允許對(duì)請(qǐng)求處理的各個(gè)階段進(jìn)行干涉。
  • 內(nèi)置的分發(fā)系統(tǒng)允許應(yīng)用程序中的組件采用預(yù)定義的信號(hào)進(jìn)行相互間的通信。
  • 一個(gè)序列化系統(tǒng),能夠生成或讀取采用 XML 或 JSON 表示的 Django 模型實(shí)例。
  • 一個(gè)用于擴(kuò)展模板引擎的能力的系統(tǒng)。

Django 包含了很多應(yīng)用在它的 contrib 包中,這些包括:

  • 一個(gè)可擴(kuò)展的認(rèn)證系統(tǒng)
  • 動(dòng)態(tài)站點(diǎn)管理頁(yè)面
  • 一組產(chǎn)生 RSS 和 Atom 的工具
  • 一個(gè)靈活的評(píng)論系統(tǒng)
  • 產(chǎn)生 Google 站點(diǎn)地圖(Google Sitemaps)的工具
  • 防止跨站請(qǐng)求偽造(cross-site request forgery)的工具
  • 一套支持輕量級(jí)標(biāo)記語(yǔ)言(Textile 和 Markdown)的模板庫(kù)
  • 一套協(xié)助創(chuàng)建地理信息系統(tǒng)(GIS)的基礎(chǔ)框架

Django 的內(nèi)置應(yīng)用

  • Django 包含了非常多應(yīng)用在它的"contrib"包中, 這些包含: 
  • 一個(gè)可擴(kuò)展的認(rèn)證系統(tǒng);
  • 動(dòng)態(tài)站點(diǎn)管理頁(yè)面;
  • 一組產(chǎn)生RSS和Atom的工具;
  • 一個(gè)靈活的評(píng)論系統(tǒng);
  • 產(chǎn)生Google站點(diǎn)地圖(Google Sitemaps)的工具;
  • 防止跨站請(qǐng)求偽造(cross-site request forgery)的工具;
  • 一套支持輕量級(jí)標(biāo)記語(yǔ)言(Textile和Markdown)的模板庫(kù);
  • 一套協(xié)助創(chuàng)建地理信息系統(tǒng)(GIS)的基礎(chǔ)框架;

Django 的優(yōu)缺點(diǎn)總結(jié)

Django 的優(yōu)點(diǎn)

  • 完美的文檔,Django近乎完美的官方文檔。
  • 強(qiáng)大的URL路由配置,Django讓你可以設(shè)計(jì)出非常優(yōu)雅的URL。
  • 自助管理后臺(tái),讓你幾乎不用寫一行代碼就擁有一個(gè)完整的后臺(tái)管理界面。
  • 全套的解決方案(full-stackframework + batteries included),基本要什么有什么(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,開發(fā)網(wǎng)站應(yīng)手的工具Django基本都給你做好了,因此開發(fā)效率是不用說(shuō)的。

Django 的缺點(diǎn)

  • Template功能比較弱,不能插入Python代碼,要寫復(fù)雜一點(diǎn)的邏輯需要另外用Python實(shí)現(xiàn)Tag或Filter。
  • URL配置雖然強(qiáng)大,但全部要手寫,高手和初識(shí)Django的人配出來(lái)的URL會(huì)有很大差異。
  • 自帶的ORM遠(yuǎn)不如SQLAlchemy強(qiáng)大,SQLAlchemy是Python世界里事實(shí)上的ORM標(biāo)準(zhǔn),其它框架都支持SQLAlchemy了,唯獨(dú)Django仍然堅(jiān)持自己的那一套。
  • Django的auth跟其它模塊結(jié)合緊密,功能也挺強(qiáng),但做的有點(diǎn)過(guò)了,用戶的數(shù)據(jù)庫(kù)schema都給你定好了,比如很多網(wǎng)站要求email地址唯一,可schema里這個(gè)字段的值不是唯一的。
  • 系統(tǒng)緊耦合,如果你覺(jué)得Django內(nèi)置的某項(xiàng)功能不是很好,想用喜歡的第三方庫(kù)來(lái)代替是很難的,比如說(shuō)的ORM、Template。要在Django里用SQLAlchemy或Mako幾乎是不可能,即使打了一些補(bǔ)丁用上了也會(huì)讓你覺(jué)得非常非常別扭。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)