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