Django入門,學會這些就夠了!

Django入門,學會這些就夠了!

Web 框架正在被廣泛應用於Python程式開發中。 其中,Django 框架是最全面、最受開發者喜愛的一種,包括國家地理、Instagram、Pinterest 在內的眾多巨頭均採用 Django 開發。

(用Django開發的ins網頁版介面)

什麼是 Django

Django 是一個由 Python 編寫的開放原始程式碼的 Web 應用程式開發框架。 它採用了MVT軟體設計模式,即Model模型、View 視圖和Templates範本。 它最初被開發出來用於管理勞倫斯出版集團旗下的新聞網站,於 2005 年在 BSD 許可下發佈開源。 這套框架是以比利時的吉普賽爵士吉他手 Django Reinhardt 的名字命名的。

Django 的主要目標是使得開發流程複雜、依賴資料庫的網站變得簡單。 Django 注重各個元件間的低耦合性,遵循 DRY 原則。

Django 的核心

Django 框架的核心包括:

  • 面向對象的關係映射模型,支援編寫對應數據表的映射類,這一點做得格外優秀
  • URL 分發器,基於正則表示式(Django2 中支援 path 編寫簡潔路徑字段)
  • 視圖系統,用於接收用戶端請求和返回回應
  • 範本系統,內置 Jinja2 範本引擎,便於編寫 Python 風格的動態數據處理代碼
  • 輕量、獨立的 Web 伺服器,便於開發測試
  • 緩存框架,支持多種緩存方式
  • 中間件,對請求處理階段進行額外操作

同時 Django 內置了一些針對新聞類網站的基礎且實用的應用:

  • 可擴展的認證系統
  • 動態網站管理頁面
  • 靈活的評論系統
  • CSRF Token 工具
  • 標記語言範本庫

Django 和其他框架對比

在使用 Python 進行 Web 開發時,除了 Django 程式設計人員還有多種框架選擇:

  • Flask:很輕量,可以迅速搭建一個簡單的 Web 網站。 幾乎沒有元件限制,提供大量功能豐富且實用的外掛程式,例如 Flask-Admin 後台管理外掛程式、Flask-WTForm 表單管理外掛程式、Flask-Login 登錄功能外掛程式、Flask-Migrate 數據表版本控制外掛程式等。 著名的科學網站果殼網就是使用 Flask 開發的。
  • Tornado:性能較高,支援異步處理,這是它最大的亮點。 對 Restful API 設計良好,但沒有針對資料庫設計的優秀的 ORM 模組,這是比較麻煩的。
  • Bottle:更加輕量,只依賴於 Python 標準庫,無法做到快速建站,在 Flask 面前幾乎沒有優勢可言。
  • AioHTTP:是比較新的框架,它需要基於 asyncio 編寫異步代碼,性能方面不必擔心,但框架完善還需要較長時間。

此外還有數種小眾框架,它們都有一些獨到之處,但在商用上的前途比較渺茫。 對 Python Web 開發而言,小的網站會使用 Flask ,大型的網站就要用 Django 。

Django 還有一個優勢,就是它自帶海量的工具和功能元件,開發者可藉助這些工具迅速搭建起 Web 應用。 不僅如此,Django 的 Model 層還自帶資料庫 ORM 元件,即使不懂 SQL 也不影響資料庫操作。 憑藉自帶的後台管理,開發者僅需少量代碼就可實現完整的後台數據管理。 APP 可插拔的設計理念使得系統可維護性極高,即使隨意對其添加和刪除,也不會對整體系統產生影響。 此外,Django debug 訊息也非常詳盡,方便在企業專案中快速糾錯代碼。

去哪學Django?

一、官方教程

Django官方提供了詳盡的教程介紹

https://docs.djangoproject.com

網頁為全英文,內容專業性較強,適合有一定語言和程式設計基礎的同學學習。

二、中文教程

1.《Django 基礎入門》

https://www.lanqiao.cn/courses/1127

主要講解了 Django 框架的基礎知識,適合已經有 Python 基礎同時想學習使用 Django 框架進行 Web 開發的同學。

2.《Django Web 框架入門實戰》

https://www.lanqiao.cn/courses/1513

詳細介紹了 Django 框架在 Web 開發過程中的應用,包括 MVT 模型、模型類的編寫、數據模型關係、創建數據表、路由基礎知識、HTTP 請求方法、Cookie & session 、視圖函數的創建、範本檔的配置與後台管理功能等知識點。 需要掌握 Python 基礎語法、MySQL 資料庫的基本操作以及 HTML 的基本知識。

三、實戰專案

1.《Django 打造檔分享系統》

https://www.lanqiao.cn/courses/993

使用 Django 框架快速打造檔分享系統,實現搜索功能,分享功能,使用者分享文件查詢。 通過實戰,可以快速掌握 Django 的基礎,以及一些 ORM 和 View 的高級用法。

2.《Django 實現問答社區》

https://www.lanqiao.cn/courses/1181

使用 Django 打造一個完整成熟的社區專案,實現了用戶註冊、討論發佈,討論回復,站內搜索等主要功能。 完成開發后,可以熟悉 Django 開發 Web 項目的基礎流程,並在此專案的基礎上進行自定義修改後,直接部署上線。

更多程式師充電好課:精選項目課程_IT熱門課程

What do you think?

Written by marketer

Python 里最強的Web框架,早就不是Django和Flask了

太棒了! FaceBook 開源全網第一個時序王器 Kats !