1. 程式人生 > >免費開源的 HelloDjango 系列教程,結束還是開始?

免費開源的 HelloDjango 系列教程,結束還是開始?

![](https://img2020.cnblogs.com/blog/759200/202003/759200-20200319190415171-440632573.jpg) 作者:[HelloGitHub-追夢人物](https://www.zmrenwu.com) 我們已經成功地開發了一個功能比較完備的個人部落格,是時候來總結一下我們的工作了。部落格系列完整的原始碼地址: > https://github.com/HelloGitHub-Team/HelloDjango-blog-tutorial - 在教程的前兩篇,我們介紹瞭如何搭建 django 開發環境,如何建立 django 專案以及 django 應用,這是我們進行 django 專案開發的基礎。 - 第 3、4 篇:講了 django ORM 的基礎操作。ORM 是 django 核心中的核心,不僅 django 自帶的應用底層全都依賴於 ORM,大部分使用 django 構建的應用基本也離不開 django ORM 的操作,所以能否熟練掌握 django 的 ORM API 決定了能否寫出高質量、高效能的 django 應用。 - 第 5、6 篇:講解了 django 基本的檢視函式,檢視函式的作用是接收一個 HTTP 請求,根據這個請求的意圖返回相應的 HTTP 響應。在這個請求處理的過程中,通常都會涉及到使用 ORM 進行資料庫的增刪改查操作。 - 第 7 篇:介紹了 django 的殺手鐗應用,開箱即用的 Admin 管理臺。我們可以通過這個管理臺直接對資料庫中的資料進行增刪改查操作。 - 第 9、10 篇:介紹了 Markdown 的使用,對於部落格、技術論壇之類的應用,使用 Markdown 來撰寫內容是一個常見的需求。 - 第 12、13 篇:介紹瞭如何自定義模板標籤並使用它們。模板標籤用於 django 的模板系統中,用來生成 HTML 頁面。django 的模板系統自帶了大量的模板標籤。但如果自帶的標籤不滿足需求,我們就可以拓展 django 模板系統的 API 來自定義模板標籤。 - 第 14 篇:我們利用上述學習到的知識開發了一個獨立的 django 評論應用。這裡面我們還初步接觸了表單的使用。django 的表單是對 HTML 表單的封裝,它在後臺完成資料校驗、清理等功能,並對非法的表單輸入返回給客戶端友好的錯誤提示。 - 第 16、17、18、19:向大家介紹了運維方面的知識,包括如何在伺服器上部署 django 應用,如何編寫自動化指令碼來全自動部署,如何給網站開啟 HTTPS 以提高安全性。特別是使用 Docker 進行部署後,我們把整個 django 部署的過程縮減到只需線上執行幾條命令就能完成,Docker 幫助我們極大簡化了部署流程。 - 第 21 篇:我們介紹了基於類的檢視和通用類檢視。之前說了,django 的檢視本質上是一個函式,它接收一個 HTTP 請求,返回一個 HTTP 響應。類檢視雖然是一個類,但這只是針對開發者而言,django 通過 Python 魔法將類轉化為一個可被呼叫的函式。使用類的好處是,它允許被繼承,因此在某些情況下可以提高程式碼的複用性。 - 第 22 篇:演示瞭如何在 Python 腳本里面獨立地使用 django 的 ORM。一般要使用 django 的 ORM 必須啟動整個 django 專案,而如果要在獨立的指令碼中使用的話,就必須進行一些額外的設定。 - 第 23 篇:我們介紹瞭如何使用 django 第三方庫,django 的強大不僅在於它自身功能的完備程度,更在於其繁榮的社群。大量開發者在開源平臺釋出了很多優質的 django 拓展應用,涵蓋了 web 開發的方方面面。這裡我們只介紹了一個分頁應用,更多應用大家可以在 GitHub 通過搜尋關鍵詞 django 進行探索。 - 第 27、28 篇:我們介紹了搜尋功能的實現。一開始使用的是比較簡單的搜尋方式,利用之前所學的 django 知識就能完成。不過為了更好的搜尋體驗,我們進一步引入了 elasticsearch 這個專業的搜尋服務來提供搜尋功能,同時使用了一個 django 第三方庫 django-haystack 來將 elasticsearch 和 django 無縫對接。同時可以看到,有了 Docker 容器技術,引入一個外部服務變得非常簡單。 - 第 29、30、31 篇:我們對部落格補充了完善的單元測試,測試過程中我們發現了一些隱藏的 bug 並進行了修復,由此測試的重要性可見一斑。此外,為了衡量測試的質量,我們使用 coverage.py 對程式碼測試覆蓋率進行了統計,越高的測試覆蓋率說明測試越充分,程式出現 bug 的機率也就越小。 現在,我們已經有了一個功能比較完備的個人部落格應用。而且,在測試的保障護航下,我們可以在不破壞現用功能的情況下,輕鬆加入新的功能。 教程進行到這裡,HelloDjango 部落格教程就要準備告一段落了,大部分 web 開發中的需求,你都可以通過教程中講到的知識點,結合 django 的官方文件來實現。 ## 不過,真的要結束了嗎?我的回答是沒有也不想結束! Django 中還有很多值得介紹的地方,就拿部落格來說,我們還可以做這些很酷的功能: - 支援使用者登入,甚至使用 GitHub、新浪微博等第三方應用登入 - 支援多級評論 - 國際化 - 使用快取進行效能優化 - 支援郵件訂閱,有新的部落格就傳送郵件提醒訂閱者 等等,這些對於其他 Web 系統來說,基本也都是必不可少的。 所以,HelloDjango 部落格專案會繼續以這樣的形式繼續下去: 圍繞著某一個功能進行開發,功能開發完成之後附帶輸出一篇詳細介紹功能實現原理和過程的教程。我希望 HelloDjango 部落格專案不僅僅是一個教學演示專案,也不僅僅是一個高質量、功能完備的 django 第三方部落格應用,而是兩者都是! 這些教程會及時通過 HelloGitHub 微信公眾號和 [追夢人物的部落格](https://www.zmrenwu.com/) 進行更新,敬請關注! ## 號外 此外,雖然 HelloDjango 部落格專案教程定期更新已經結束,但接下來我會開始以定期更新的方式向大家介紹如何 django-restframework + Vue 或者 React 這種更加現代化的前後端分離開發方式,大量公司都採用這種開發方式,如果你以找工作為目的而學習 django 的話,怎麼能不學習這種開發模式呢? **HelloDjango-blogs 的教程暫時告一段落,全新的 HelloDjango-django-restframework 系列教程就要要重新揚帆起航了,大家敬請期待!** 所以還是那句話,敬請關注 HelloGitHub 微信公眾號以及 [追夢人物的部落格](https://www.zmrenwu.com/),免費學習 Django 全棧開發。 ![](https://img2020.cnblogs.com/blog/759200/202003/759200-20200319190805283-11698284