第1章 Django高級實戰-開發企業級問答網站
課程項目結合:需求分析/Django高級用法/算法/設計模式/TestCase測試/雲計算服務。本章將具體介紹課程的學習內容和目標,描述問答網站的業務場景、用途、重要性、實用性。學習本課程需要具備的知識,項目使用的技術棧,重難點;讓同學們對課程的技術范疇,廣度和難度有心理准備。演示網站的所有功能,結果導向,一目了然。...
第2章 Django項目的一些最佳實踐
最佳實踐目的是使生產或管理實踐的結果達到最優,並減少出錯的可能性。本章講的一些實踐方法在后面都會用到,算是項目知識鋪墊。每小節都會舉例和大家說明。
第3章 項目需求分析,功能設計和技術選型
本章將從用戶的角度,分析需要實現哪些功能,學習需求分析,Markdown寫項目需求文檔,貼近“高內聚,低耦合”原則,模塊化設計網站功能。前后端的技術選型,規划各個軟件的版本。
第4章 Cookiecutter火速搭建項目+開發環境介紹
介紹神器Cookiecutter,它的優點和局限,按照確定的技術棧選擇cookiecutter-django搭建具有高完成度的項目,學習Python項目如何組織代碼,如何管理配置,如何管理依賴。項目開發環境介紹:Pycharm連接CentOS 7遠程開發設置,以及MySQL用戶權限管理和安全設置。 ...
第5章 django-allauth同時實現本地和第三方認證
繼承AbstractUser自定義用戶模型類,引入django-allauth認證系統,同時完成本地賬戶功能和集成第三方賬戶登錄注冊,再回頭講解OAuth 2.0協議的原理。學習使用TestCase為Django模型類、網址、視圖編寫測試用例。
第6章 首頁功能- ListView/DeleteView完成動態功能-源碼和MRO算法
本章在實現需求的同時,穿插講解Django的高級知識,如ORM中多對多外鍵。先使用通用類視圖ListView/DeleteView開發功能,再講解框架的源碼,然后是Python語言中多繼承的MRO算法,按業務→框架→源碼→Python底層算法順序由淺入深講解。 ...
第7章 [文章]GCBV使用和自定義QuerySet,DTL語法精講
本章首先講解問答類業務中最常見的兩個功能需求:詳情頁的slug和標簽管理。依據軟件開發中DRY原則,在模型類中自定義查詢集QuerySet,模仿主流問答類網站,實現文章的Markdown編輯與實時預覽效果,實現功能之后再剖析CreateView/UpdateView源碼。 ...
第8章 GenericRelation關聯模型類與RequestFactory類測試視圖
實現問答功能:本章為贊乎產品的核心功能,業務邏輯頗為復雜,首先將梳理“用戶-問題-回答-點贊/踩-采納”之間的關系,然后介紹Django中的ContentType,使用更高級外鍵GenericForeignKey與GenericRelation來解決問題。在測試用例中,我們將改用更加符合企業實踐的方式—RequestFactory類直接測試視圖。 ...
第9章 [私信]消息查詢集設計,發送和接收處理
私信功能包括私信記錄、在線回復、私信提示,難點在於后端消息的實時推送,本章先講解消息模型類與查詢集的設計,實現用戶發送消息與接收消息處理,然后是WebSocket原理,再介紹Django Channels,什么是consumer,routing,Django應用中如何實現WebSocket認證。 ...
第10章 [通知功能]處理器的實現-channels實戰WebSocket編程
本章是項目的重難點,將着重講,內容包括通知功能的業務場景分析,通知處理器設計與實現,進一步實戰實戰WebSocket編程,什么是ASGI服務器,以及ASGI請求的通道服務(Redis) ,如何繼承AsyncWebSocketConsumer類實現用戶異步連接、斷開、接收通知。 ...
第11章 django-haystack+elasticsearch實現全站搜索
本章將學習使用django-haystack + elasticsearch實現全站搜索,可以同時搜索文章、動態、問答、用戶、標簽。包括Elasticsearch搜索引擎安裝和配置,haystack通過型號量機制實時生成索引,以及搜索結果分類處理。
第12章 Django Channels與僅有HTTP的Django應用部署
本章將先講解Python應用的部署原理,什么是UWSGI/uWSGI/uwsgi/WSGI,Nginx反向代理的作用,然后精講兩大類4種Django應用的部署方式,包括部署的配置文件、配置項、日志內容的含義,如何排錯。
第13章 阿里雲ECS+RDS上線項目
雲計算成為主流趨勢,熟悉使用雲產品成為企業招聘需求,本章將講解如何使用阿里雲ECS+RDS上線項目,包括選擇合適的ECS,做初始化配置、安全配置等;RDS實例創建,賬號及數據庫管理,ECS連接RDS。需要同學們動手申請雲賬號,項目上線成功后可以公網訪問,互相監督促進。 ...
第14章 課程回顧與總結
回顧整個課程,梳理開發過程,復習課程中的重難點知識。總結經驗,提出項目中可以進一步完善的功能,如使用Django緩存優化,並給出實現思路,讓同學們主動思考,探索。