5分鐘入門(mén)Django!快速開(kāi)發(fā)出功能強(qiáng)大的網(wǎng)站!
Web 框架正在被廣泛應(yīng)用于Python程序開(kāi)發(fā)中。其中,Django 框架是最全面、最受開(kāi)發(fā)者喜愛(ài)的一種,包括國(guó)家地理、Instagram 、Pinterest 在內(nèi)的眾多巨頭均采用 Django 開(kāi)發(fā)。
(用Django開(kāi)發(fā)的ins網(wǎng)頁(yè)版界面)
01
什么是 Django ?
Django 是一個(gè)由 Python 編寫(xiě)的開(kāi)放源代碼的 Web 應(yīng)用程序開(kāi)發(fā)框架。它采用了 MVT 軟件設(shè)計(jì)模式,即 Model 模型、View 視圖和 Templates 模板。
它最初被開(kāi)發(fā)出來(lái)用于管理勞倫斯出版集團(tuán)旗下的新聞網(wǎng)站,于 2005 年在 BSD 許可下發(fā)布開(kāi)源。這套框架是以比利時(shí)的吉普賽爵士吉他手 Django Reinhardt 的名字命名的。
Django 的主要目標(biāo)是使得開(kāi)發(fā)流程復(fù)雜、依賴(lài)數(shù)據(jù)庫(kù)的網(wǎng)站變得簡(jiǎn)單。Django 注重各個(gè)組件間的低耦合性,遵循 DRY 原則。
02
Django 的核心是什么?
Django 框架的核心包括:
面向?qū)ο蟮年P(guān)系映射模型,支持編寫(xiě)對(duì)應(yīng)數(shù)據(jù)表的映射類(lèi),這一點(diǎn)做得格外優(yōu)秀
URL 分發(fā)器,基于正則表達(dá)式(Django2 中支持 path 編寫(xiě)簡(jiǎn)潔路徑字段)
視圖系統(tǒng),用于接收客戶(hù)端請(qǐng)求和返回響應(yīng)
模板系統(tǒng),內(nèi)置 Jinja2 模板引擎,便于編寫(xiě) Python 風(fēng)格的動(dòng)態(tài)數(shù)據(jù)處理代碼
輕量、獨(dú)立的 Web 服務(wù)器,便于開(kāi)發(fā)測(cè)試
緩存框架,支持多種緩存方式
中間件,對(duì)請(qǐng)求處理階段進(jìn)行額外操作
同時(shí) Django 內(nèi)置了一些針對(duì)新聞?lì)惥W(wǎng)站的基礎(chǔ)且實(shí)用的應(yīng)用:
可擴(kuò)展的認(rèn)證系統(tǒng)
動(dòng)態(tài)站點(diǎn)管理頁(yè)面
靈活的評(píng)論系統(tǒng)
CSRF Token 工具
標(biāo)記語(yǔ)言模板庫(kù)
03
Django 和其他框架有什么區(qū)別?
在使用 Python 進(jìn)行 Web 開(kāi)發(fā)時(shí),除了 Django 編程人員還有多種框架選擇:
Flask:很輕量,可以迅速搭建一個(gè)簡(jiǎn)單的 Web 網(wǎng)站。
它幾乎沒(méi)有組件限制,提供大量功能豐富且實(shí)用的插件,例如 Flask-Admin 后臺(tái)管理插件、Flask-WTForm 表單管理插件、Flask-Login 登錄功能插件、Flask-Migrate 數(shù)據(jù)表版本控制插件等。
著名的科學(xué)網(wǎng)站果殼網(wǎng)就是使用 Flask 開(kāi)發(fā)的。
Tornado:性能較高,支持異步處理,這是它最大的亮點(diǎn)。
對(duì) Restful API 設(shè)計(jì)良好,但沒(méi)有針對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)的優(yōu)秀的 ORM 模塊,這是比較麻煩的。
Bottle:更加輕量,只依賴(lài)于 Python 標(biāo)準(zhǔn)庫(kù),無(wú)法做到快速建站,在 Flask 面前幾乎沒(méi)有優(yōu)勢(shì)可言。
Aiohttp:是比較新的框架,它需要基于 asyncio 編寫(xiě)異步代碼,性能方面不必?fù)?dān)心,但框架完善還需要較長(zhǎng)時(shí)間。
此外還有數(shù)種小眾框架,它們都有一些獨(dú)到之處,但在商用上的前途比較渺茫。對(duì) Python Web 開(kāi)發(fā)而言,小的網(wǎng)站會(huì)使用 Flask ,大型的網(wǎng)站就要用 Django 。
Django 還有一個(gè)優(yōu)勢(shì),就是它自帶海量的工具和功能組件,開(kāi)發(fā)者可借助這些工具迅速搭建起 Web 應(yīng)用。
不僅如此,Django 的 Model 層還自帶數(shù)據(jù)庫(kù) ORM 組件,即使不懂 SQL 也不影響數(shù)據(jù)庫(kù)操作。憑借自帶的后臺(tái)管理,開(kāi)發(fā)者僅需少量代碼就可實(shí)現(xiàn)完整的后臺(tái)數(shù)據(jù)管理。
APP 可插拔的設(shè)計(jì)理念使得系統(tǒng)可維護(hù)性極高,即使隨意對(duì)其添加和刪除,也不會(huì)對(duì)整體系統(tǒng)產(chǎn)生影響。此外,Django debug 信息也非常詳盡,方便在企業(yè)項(xiàng)目中快速糾錯(cuò)代碼。
04
哪里學(xué) Django ?
一、官方教程
Django官方提供了詳盡的教程介紹:
https://docs.djangoproject.com
網(wǎng)頁(yè)為全英文,內(nèi)容專(zhuān)業(yè)性較強(qiáng),適合有一定語(yǔ)言和編程基礎(chǔ)的同學(xué)學(xué)習(xí)。
二、中文教程
1.《Django 基礎(chǔ)入門(mén)》
https://www.lanqiao.cn/courses/1127?utm_source=weixin
主要講解了 Django 框架的基礎(chǔ)知識(shí),適合已經(jīng)有 Python 基礎(chǔ)同時(shí)想學(xué)習(xí)使用 Django 框架進(jìn)行 Web 開(kāi)發(fā)的同學(xué)。
三、學(xué)習(xí)資料
《Django 深度學(xué)習(xí)資料》
(1)深度解釋 Django 到底做了哪些工作以及如何用它構(gòu)建Web應(yīng)用;
(2)通過(guò)案例解釋Django的一些高級(jí)概念,教會(huì)你如何在自己的項(xiàng)目中高效使用這些工具。
通過(guò)這份資料你將學(xué)會(huì)快速開(kāi)發(fā)功能強(qiáng)大的網(wǎng)站、代碼清晰、易于維護(hù)!
添加奇小酷微信qixiaokuyujian,私信Django免費(fèi)領(lǐng)取
四、 學(xué)習(xí)視頻
添加奇小酷微信qixiaokuyujian,私信Django免費(fèi)領(lǐng)取
五、 Django電子書(shū)
添加奇小酷微信qixiaokuyujian,私信Django免費(fèi)領(lǐng)取