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

hellogithub 發佈 2020-03-20T12:14:07+00:00

第3、4 篇:講了 django ORM 的基礎操作。ORM 是 django 核心中的核心,不僅 django 自帶的應用底層全都依賴於 ORM,大部分使用 django 構建的應用基本也離不開 django ORM 的操作,所以能否熟練掌握 django 的 ORM API

作者:HelloGitHub-追夢人物

我們已經成功地開發了一個功能比較完備的個人博客,是時候來總結一下我們的工作了。博客系列完整的原始碼地址:

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 第三方博客應用,而是兩者都是!

號外

此外,雖然 HelloDjango 博客項目教程定期更新已經結束,但接下來我會開始以定期更新的方式向大家介紹如何 django-restframework + Vue 或者 React 這種更加現代化的前後端分離開發方式,大量公司都採用這種開發方式,如果你以找工作為目的而學習 django 的話,怎麼能不學習這種開發模式呢?

HelloDjango-blogs 的教程暫時告一段落,全新的 HelloDjango-django-restframework 系列教程就要要重新揚帆起航了,大家敬請期待!

『講解開源項目系列』——讓對開源項目感興趣的人不再畏懼、讓開源項目的發起者不再孤單。跟著我們的文章,你會發現編程的樂趣、使用和發現參與開源項目如此簡單。歡迎聯繫我、加入我們,讓更多人愛上開源、貢獻開源~

關鍵字: