標籤:藍圖 stack 問題 red 準備工作 聯合 log manager exception
第1章 課程導語
介紹課程的內容
1-1 開宗明義
1-2 課程維護與提問
第2章 Flask的基本原理與核心知識
本章我們首先介紹Python官方推薦的最佳包與虛擬環境管理工具:Pipenv。接著我們來學習唯一URL原則、重新導向、響應對象Response。
2-1 魚書是一個什麼樣的產品
2-2 準備工作
2-3 使用官方推薦的pipenv建立虛擬環境(很好用哦~)
2-4 開發工具推薦
2-5 設定開發工具的預設解譯器
2-6 flask最小原型與唯一URL原則
2-7 路由的另一種註冊方法
2-8 app.run相關參數與flask設定檔
2-9 你並沒有真正理解 if __name__的作用
2-10 響應對象:Response
第3章 資料與flask路由
本章我們重點探討資料擷取、視圖函數的編寫規範、flask的路由原理(深入源碼)。此外我們還將講解常見的Python應用誤區,比如迴圈匯入所造成的問題。
3-1 搜尋而不是拍照上傳
3-2 書籍搜尋與查詢 1-資料API
3-3 書籍搜尋與查詢 2-搜尋索引鍵
3-4 書籍搜尋與查詢 3-簡單的重構
3-5 擷取書籍資料:調用魚書API
3-6 requests vs urllib
3-7 從API擷取資料
3-8 使用jsonify
3-9 將視圖函數拆分到單獨的檔案中
3-10 深入瞭解flask路由
3-11 迴圈引入流程分析
第4章 藍圖、模型與CodeFirst
本章我們嘗試把單檔案的flask重構為具有模組意義的分檔案模型,接著我們會探討如何使用CodeFirst的思想來建立資料庫表。
4-1 應用、藍圖與視圖函數
4-2 用藍圖註冊視圖函數
4-3 單藍圖多模組分割檢視函數
4-4 request 對象
4-5 WTForms參數驗證
4-6 拆分設定檔
4-7 Model First、Database First與Code First
4-8 定義第一個模型類
4-9 將模型映射到資料庫中
4-10 ORM與CodeFirst區別
第5章 flask核心機制
flask最核心的是兩個上下文,而這兩個上下中包含大量的Python進階編程應用。我們需要理解內容相關的意義,並且通過借鑒flask的下文機制,學習Python的上下文管理器(With)、棧結構的應用。我們還將學習,到底如何通過閱讀源碼來解決問題。...
5-1 flask中經典錯誤 working outside application context
5-2 AppContext、RequestContext、Flask與Request之間的關係
5-3 詳解flask上下文與出入棧
5-4 flask上下文與with語句
5-5 詳解上下文管理器的__exit__方法
5-6 閱讀源碼解決db.create_all的問題
第6章 Flask中的多線程與線程隔離技術
對於Web,多線程是難以避免的。本章節,我們將藉助flask的原理來學習進程、線程、什麼是安全執行緒、什麼又是線程隔離、如何在Python中實現線程隔離、LocalStack機制又是什麼。學完本章,你將理解為什麼由於GIL(全域解譯器鎖)的存在,Python的多線程依然是有意義的。...
6-1 什麼是進程
6-2 線程的概念
6-3 多線程
6-4 多線程的優勢與好處
6-5 全域解譯器鎖GIL
6-6 對於IO密集型程式,多線程是有意義的
6-7 開啟flask多線程所帶來的問題
6-8 線程隔離
6-9 Flask中的線程隔離對象Local
6-10 Flask 中的線程隔離棧:LocalStack
6-11 LocalStack作為-Stack-的基本用法
6-12 LocalStack作為線程隔離對象的意義
6-13 flask中被線程隔離的對象
6-14 梳理串接flask的一些名詞
第7章 書籍詳情頁面的構建(ViewModel、物件導向與重構)
本章我們提出一個概念ViewModel,並詳細解釋ViewModel的意義。此外物件導向雖然是老生常談,但你真的理解物件導向嗎?我們將在本章中通過重構來一步步揭示到底什麼才是對象,如何寫出物件導向的代碼來。思維的訓練,永遠比業務要重要。...
7-1 ViewModel的基本概念
7-2 使用ViewModel處理書籍資料 上
7-3 使用ViewModel處理書籍資料 下
7-4 偽物件導向:披著物件導向外衣的面向過程
7-5 重構魚書核心對象:YuShuBook 上
7-6 重構魚書核心對象:YuShuBook 下
7-7 從json序列化看代碼解釋權反轉
7-8 詳解單頁面與網站的區別
第8章 靜態檔案、模板、訊息閃現與Jinja2
本章,我們將通過藉助學習flask的模板來間接學習:列表推導式的應用、三元運算式的應用、@Property屬性描述符、filter函數的應用、管道過濾器。這些知識我們雖然在入門與進階課程中學習過,但是他們到底如何使用?這是個問題。我們本章將一一解釋。...
8-1 靜態檔案訪問原理
8-2 模板檔案的位置與修改方案_x264
8-3 Jinja2的概念
8-4 在Jinja2中讀取字典和對象
8-5 流程式控制制語句 if
8-6 流程式控制制語句 for in 迴圈
8-7 使用模板繼承
8-8 過濾器與管道命令
8-9 反向構建URL
8-10 訊息閃現、SecretyKey與變數範圍
8-11 顯示搜尋結果頁面
8-12 頁面結構解析
第9章 使用者登入與註冊
本章我們通過使用flask-login這個外掛程式來處理使用者的登入與註冊。同時我們將藉助登入與註冊來學習Flask中的Cookie、重新導向、與重新導向的隱患:重新導向攻擊。此外,我們還會介紹Python的getter與setter的妙用。
9-1 viewmodel意義的體現與filter函數的巧妙應用
9-2 書籍詳情頁面商務邏輯分析
9-3 實現書籍詳情頁面
9-4 模型與模型關係
9-5 自訂基類模型
9-6 使用者註冊
9-7 Python的動態賦值
9-8 Python屬性描述符實現getter與setter
9-9 ORM的方式儲存模型
9-10 自訂驗證器
9-11 redirect重新導向
9-12 cookie
9-13 cookie的應用
9-14 login_user 將使用者資訊寫入cookie
9-15 存取權限控制
9-16 重新導向攻擊
第10章 書籍交易模型(資料庫事務、重寫Flask中的對象)
本章是一個綜合應用章節。我們將看到如何使用多個Python的知識點綜合解決問題。我們將進一步的使用@contextmanager來改善前面所學到的上下文管理器,並結合yield來最佳化資料庫事務。此外,我們還將重寫Flask中的一些對象的方法,來實現我們自己的商務邏輯。...
10-1 魚豆
10-2 思維邏輯鍛煉
10-3 事務與復原
10-4 Python @contextmanager
10-5 靈活使用@contextmanager
10-6 結合繼承、yield、contextmanager、rollback來解決問題
10-7 類變數的陷阱
10-8 合理使用ajax
10-9 書籍交易視圖模型
10-10 處理時間
10-11 書籍詳情頁面
10-12 再談MVC中的Model
10-13 重寫filter_by
第11章 魚書業務處理
本章我們將使用前面所學習的Flask與Python知識集中處理我們的業務。包括:最近上傳的圖書(首頁)、禮物清單與贈送清單、魚漂與個人中心等。
11-1 最近的禮物(複雜SQL的編寫方案)
11-2 鏈式調用
11-3 完成最近的禮物(業務的四種編寫方案)
11-4 我的禮物 一 (使用db.session和filter做查詢)
11-5 我的禮物 二(group_by與funct.count統計聯合使用)
11-6 我的禮物 三 (不要在函數中返回元組,而應該返回字典)
11-7 我的禮物 四
11-8 使用者登出
11-9 我的心愿 一
11-10 我的心愿 二 (再談迴圈匯入的解決方案)
11-11 我的心愿 三 (談談重複代碼的封裝技巧)
第12章 Python與Flask的結合應用
在《Python3入門與進階》中我們詳細講解了裝飾器,但是裝飾器到底應該怎麼用?本章將通過使用帶參數的進階裝飾器來實現郵件發送的頻率限制。同時我們將分析SQLAlchemy中的多繼承特性、利用迭代器來改善和最佳化我們的代碼。
12-1 忘記密碼(重設密碼流程分析)
12-2 first_or_404
12-3 callable 可調用對象的意義
12-4 HTTPException 一
12-5 HTTPException 二
12-6 裝飾器app_errorhandler:AOP的應用
12-7 寄送電子郵件 一
12-8 寄送電子郵件 二
12-9 使用itsdangerous產生令牌
12-10 重設密碼
12-11 非同步寄送電子郵件
12-12 魚漂商務邏輯與Drift模型
12-13 合理利用資料冗餘記錄曆史狀態
12-14 魚漂條件檢測
12-15 完成魚漂商務邏輯
12-16 交易記錄頁面
12-17 Drift ViewModel 一
12-18 Drift ViewModel 二
12-19 三種類模式的總結與對比
12-20 更好的使用枚舉
12-21 超權現象防範
12-22 拒絕請求
12-23 郵寄成功
12-24 撤銷禮物與心愿
12-25 向他人贈送書籍
:百度網盤下載
Python Flask進階編程