《精通 Django》 讀後感

貓冬發表於2017-06-13

自上上週日看完《Python 語言及其應用》學了 Python 之後,就開始想找一門 Web 框架來練練手,恰逢《精通 Django》的出版,於是就高高興興的讀了起來,學了一週 Django 收穫不少,在這裡分享一下讀後感。

簡單地介紹 Django

Django 誕生於2003年,由美國堪薩斯州勞倫斯的一個 Web 開發團隊編寫。這個團隊當時維護幾個新聞網站,並且被要求 Web 應用在 緊張的時間內開發出來,於是團隊開發了這個易於維護的框架。

基於這個前提,Django 十分適合搭建"內容型"的網站,使用 Django 能在極短的時間內構建全面動態的網站。我在學習的時候也深刻體會到這點,例如自帶的管理後臺、自帶的使用者系統(能管理使用者的賬戶、分組和許可權,並且實現了基於 cookie 的使用者會話。)、強大的 ORM(Object-relational mapping)等等。

適合新手嗎?

個人愚見,我認為 Django 是一個十分適合新手的框架,原因如下:

  • 清晰的 MVC 設計
  • 十分上手的 ORM(Model 層:基於 Python 資料結構的 CRUD)
  • 自帶使用者認證系統(新手不需要自己關心使用者系統的安全性)
  • 整合了很多模組,支援大多數資料庫
  • 能夠熟悉並專注於 Web 開發邏輯

網上也有很多關於 Flask 和 Django 的爭論,比如 Flask 十分靈活,而 Django 依賴的東西太多。我認為這是兩種不同的設計理念,也要按照需求來選擇框架(沒錯,兩種框架都學精了就不會有爭論了!),例如開發論壇的時候就能直接依賴 Django 的使用者認證系統來搭建,不用重複造輪子。

Django 很好上手,自己花了幾天的時間就能搭一個擁有登入註冊、評論的部落格,文後也會給出一些自己的學習路線建議。

讀後感

與實戰向的書相比,這本書其實更像是一本工具書,作者也希望這本書能成為 The Django Book 的非官方第三版。本書涵蓋的內容全面,對於一些主要的包都有詳盡的介紹。

本書前六章是 Django 的基礎知識,本書唯一的一個小專案就在裡面,目的是讓讀者對 Django 有基礎的認識,併為學習後面的較高階的內容做打好基礎。

第七到十三章講的是 Django 的高階用法,包含前面六章更深入的知識,例如自定義過濾器和裝飾器、自定義模型和表單、擴充套件和定製驗證系統、實戰性強的測試和部署 Web 應用。

後面的章節是可能用不到的 Django 功能,可以作為擴充套件閱讀。

本書尾也有詳細的附錄,講解了 Django 中的各個函式和欄位,可以作為參考。

優點

  • 一本優秀的工具書
  • 對 Django 一些機制有深入的講解

缺點

  • 缺乏大型專案實戰
  • 內容覆蓋不全面,如:ContentType。

學習建議

熟悉本書前六章內容,簡單的看看第七到十章(看這些知識能做什麼,太細的點在需要的時候再翻查),然後開始嘗試寫一個自己的部落格。

路線一

如果對自己英語沒多少自信,可以參考django 入門學習規劃與資料推薦,作者提供準備好的樣式,部落格教程也較詳細,對零基礎萌新友好。

路線二

英語好而且有條件的同學可以參考油土鱉的教程:
Try Django 1.9 -- Build a Django Blog -- Django 1.9, Bootstrap 3.3, & More.

入門的教程,也是教你從零開始搭部落格,熟悉基礎。

Advancing the Blog from Try Django 1.9

Try Django 1.9 教程的進階版,增加了實時顯示的 markdown 編輯、美化細節、ContentType 實現評論功能、基於使用者認證系統實現登入註冊等使用的技巧。

Blog API with Django Rest Framework

在前兩系列部落格教程的基礎上,為部落格提供 API 支援。

除了 API 的教程,前面教程我都看完了。十分建議有條件的走路線二,裡面的內容覆蓋了《精通 Django》前十一章所涉及的概念,當然路線一里的博主也十分樂意幫助萌新解決問題,Q 群也活躍。

擴充套件閱讀

相關文章