內容簡介
本書從Flask框架的基礎知識講起,逐步深入到使用Flask進行Web套用開發實戰。其中,重點介紹了使用Flask+SQLAlchemy進行服務端開發,以及使用Jinja 2模板引擎和Bootstrap進行前端頁面開發的方法,不但可以讓讀者系統地學習用Python微型框架開發Web套用的相關知識,而且還能對Web開發中基於角色訪問許可權控制的方法等相關知識有更為深入的理解。本書提供了大量的實戰案例引導讀者由淺入深地學習Flask Web套用開發,可以讓讀者的開發水平有質的提升。
本書共16章,分為3篇。第1篇為Flask基礎知識,介紹了Flask開發的環境部署及入門知識,內容涵蓋了Flask程式的基本結構、Jinja 2模板、Web表單、SQLAlchemy管理資料庫、裝飾器的定義和使用、Memcached快取技術等;第2篇為CMS新聞系統開員勸悼發,介紹了
資料庫設計、資料庫遷移、無限級分類的實現、登錄日誌、角色的訪問許可權控制等內容;第3篇為網站上線準備及部署,介紹了Web程式上線部署前必須要進行的單元測試、性能最佳化和環境部署等內容。
本書內容通俗易懂,案例豐富,實用性強,特別適合Python Web開發的入門讀者和進階讀者學習,也適合PHP程式設計師和
Java程式設計師等其他Web開發愛好者閱讀。另外,本書可以作為相關培訓機構的教材用書。
圖書目錄
第1篇 Flask基礎知識
第1章 開發環境部署 2
1.1 Python的安裝及配置 2
1.2 虛擬環境的配置 8
1.3 PyCharm的安裝及使用 11
1.4 溫故知新 20
1.5 習題 20
第2章 Flask快速上手 21
2.1 Web基礎知識 21
2.2 第一個Flask Web程式 22
2.3 URL傳遞參數 28
2.4 URL反轉 29
2.5 頁面跳轉和重定向 30
2.6 溫故知新 31
2.7 習題 31
第3章 Jinja 2模板引擎 33
3.1 模板引擎概述及簡單使用 33
3.2 向模板中傳遞參數 35
3.3 模板中的控制語句之if語句 38
3.4 模板中的控制語句之for語才提盛朽句 40
3.5 Flask的過濾器 42
3.6 宏的定義及使寒民市用 46
3.7 set和with語句的使用 50
3.8 靜態檔案的載入 52
3.9 模板的繼承 54
3.10 溫故知新 57
3.11 習題 57
第4章 Flask視圖高級技術 58
4.1 app.route與add_url_rule簡介 58
4.2 Flask類視圖 61
4.3 Flask裝飾器 66
4.4 藍圖 71
4.5 溫故知新 72
4.6 習題 73
第5章 Flask數據互動 74
5.1 使用Flask處理表單 74
5.2 使用Flask上傳檔案 80
5.3 Cookie的使用 86
5.4 Session的使用 92
5.5 鉤子函式的使用 95
5.6 溫故知新 97
5.7 習題 97
第6章 訪問資料庫 98
6.1 MySQL資料庫安裝 98
6.2 Python資料庫框架MySQL-Python 100
6.3 通過MySQL-Python進行更新數據操作 105
6.3.1 增加數據 105
6.3.2 修改數據 106
6.3.3 刪除數據 107
6.4 初識Flask-SQLAlchemy 108
6.5 Flask-SQLAlchemy初始化 112
6.6 Flask-SQLAlchemy模型與表映射方法1 114
6.7 Flask-SQLAlchemy模型與表映射方法2 118
6.8 數據的增、刪、碑榜背改、查 119
6.8.1 數據添加 119
6.8.2 數據查詢 121
6.8.3 數據修改 122
6.8.4 數據刪除 123
6.9 使用Flask-SQLAlchemy創建一雄蘭對一的關係表 124
6.10 使用Flask-SQLAlchemy創建一對多的汽夜虹慨關係表 126
6.11 使用Flask-SQLAlchemy創建多對多的關係表 128
6.12 Flask-Script工具的使用 130
6.13 Flask循環霉敬鑽引用 133
6.14 使用Flask-Migrate實現資料庫遷移 136
6.15 溫故知新 139
6.16 習題 139
第7章 Memcached快取系統 140
7.1 Memcached的安裝 140
7.2 Memcached的基本使用 143
7.3 Memcached的安全機制 150
7.4 溫故知新 151
7.5 習題 151
第8章 Bootstrap的基本使用 152
8.1 Bootstrap簡介 152
8.2 全局CSS樣式 154
8.3 柵格系統 156
8.4 Bootstrap CSS代碼 162
8.5 Bootstrap表格 165
8.6 Bootstrap表單 173
8.7 Bootstrap按鈕 182
8.8 溫故知新 185
8.9 習題 186
第2篇 CMS新聞系統開發
第9章 CMS後台管理員登錄實現 188
9.1 CMS系統基本藍圖 188
9.2 用戶模型定義 190
9.4 限制用戶訪問 206
9.5 用戶名註銷功能實現 207
9.6 溫故知新 209
9.7 習題 210
第10章 CMS後台文章模組基本功能實現 211
10.1 管理員信息展示 211
10.2 文章欄目頁的實現 220
10.3 文章的添加、修改、刪除功能的實現 235
10.4 溫故知新 256
10.5 習題 256
第11章 CMS後台基本評論及登錄日誌等功能的實現 258
11.1 評論信息管理 258
11.2 登錄日誌、操作日誌等功能實現 273
11.3 溫故知新 282
11.4 習題 283
第12章 基於角色的訪問控制功能實現 284
12.1 許可權、角色、用戶的資料庫設計 284
12.2 許可權管理 286
12.3 角色管理 297
12.4 基於角色的訪問控制思想及實現 307
12.5 溫故知新 310
12.6 習題 310
第13章 CMS網站前台功能實現 311
13.1 用戶的註冊和登錄功能 311
13.2 網站首頁的基本實現 324
13.3 文章詳情頁功能實現 326
13.4 網站404頁面功能實現 329
13.5 溫故知新 330
13.6 習題 331
第14章 CMS系統代碼最佳化 332
14.1 CSRF攻擊與防禦 332
14.2 視圖函式的一些最佳化 334
14.3 將驗證碼保存到Memcached中 336
14.4 溫故知新 337
14.5 習題 337
第3篇 網站上線準備及部署
第15章 CMS系統性能測試與單元測試 340
15.1 慢查詢SQL的檢測與記錄 340
15.2 Flask單元測試 342
15.3 溫故知新 348
15.4 習題 348
第16章 網站部署 349
16.1 伺服器部署 349
16.2 網站部署 354
16.3 溫故知新 356
16.4 習題 356
作者簡介
錢游 畢業於重慶大學計算機科學與技術專業。有十餘年的軟體開發經驗,先後在西部數碼成都西維數碼科技有限公司和中企動力重慶分公司任職,歷任Java程式設計師、系統架構師等職。參與開發過的項目有
重慶力帆集團績效考核系統、重慶國電睿霖電氣有限公司暨物聯網雲平台、重慶科創職業學院官網、重慶城市職業學院官網等。長期使用Flask框架進行Web套用開發,在Web開發、微商城開發、Android移動開發等領域有豐富的實戰經驗。現從事移動網際網路與物聯網套用等領域的研究。
4.5 溫故知新 72
4.6 習題 73
第5章 Flask數據互動 74
5.1 使用Flask處理表單 74
5.2 使用Flask上傳檔案 80
5.3 Cookie的使用 86
5.4 Session的使用 92
5.5 鉤子函式的使用 95
5.6 溫故知新 97
5.7 習題 97
第6章 訪問資料庫 98
6.1 MySQL資料庫安裝 98
6.2 Python資料庫框架MySQL-Python 100
6.3 通過MySQL-Python進行更新數據操作 105
6.3.1 增加數據 105
6.3.2 修改數據 106
6.3.3 刪除數據 107
6.4 初識Flask-SQLAlchemy 108
6.5 Flask-SQLAlchemy初始化 112
6.6 Flask-SQLAlchemy模型與表映射方法1 114
6.7 Flask-SQLAlchemy模型與表映射方法2 118
6.8 數據的增、刪、改、查 119
6.8.1 數據添加 119
6.8.2 數據查詢 121
6.8.3 數據修改 122
6.8.4 數據刪除 123
6.9 使用Flask-SQLAlchemy創建一對一的關係表 124
6.10 使用Flask-SQLAlchemy創建一對多的關係表 126
6.11 使用Flask-SQLAlchemy創建多對多的關係表 128
6.12 Flask-Script工具的使用 130
6.13 Flask循環引用 133
6.14 使用Flask-Migrate實現資料庫遷移 136
6.15 溫故知新 139
6.16 習題 139
第7章 Memcached快取系統 140
7.1 Memcached的安裝 140
7.2 Memcached的基本使用 143
7.3 Memcached的安全機制 150
7.4 溫故知新 151
7.5 習題 151
第8章 Bootstrap的基本使用 152
8.1 Bootstrap簡介 152
8.2 全局CSS樣式 154
8.3 柵格系統 156
8.4 Bootstrap CSS代碼 162
8.5 Bootstrap表格 165
8.6 Bootstrap表單 173
8.7 Bootstrap按鈕 182
8.8 溫故知新 185
8.9 習題 186
第2篇 CMS新聞系統開發
第9章 CMS後台管理員登錄實現 188
9.1 CMS系統基本藍圖 188
9.2 用戶模型定義 190
9.4 限制用戶訪問 206
9.5 用戶名註銷功能實現 207
9.6 溫故知新 209
9.7 習題 210
第10章 CMS後台文章模組基本功能實現 211
10.1 管理員信息展示 211
10.2 文章欄目頁的實現 220
10.3 文章的添加、修改、刪除功能的實現 235
10.4 溫故知新 256
10.5 習題 256
第11章 CMS後台基本評論及登錄日誌等功能的實現 258
11.1 評論信息管理 258
11.2 登錄日誌、操作日誌等功能實現 273
11.3 溫故知新 282
11.4 習題 283
第12章 基於角色的訪問控制功能實現 284
12.1 許可權、角色、用戶的資料庫設計 284
12.2 許可權管理 286
12.3 角色管理 297
12.4 基於角色的訪問控制思想及實現 307
12.5 溫故知新 310
12.6 習題 310
第13章 CMS網站前台功能實現 311
13.1 用戶的註冊和登錄功能 311
13.2 網站首頁的基本實現 324
13.3 文章詳情頁功能實現 326
13.4 網站404頁面功能實現 329
13.5 溫故知新 330
13.6 習題 331
第14章 CMS系統代碼最佳化 332
14.1 CSRF攻擊與防禦 332
14.2 視圖函式的一些最佳化 334
14.3 將驗證碼保存到Memcached中 336
14.4 溫故知新 337
14.5 習題 337
第3篇 網站上線準備及部署
第15章 CMS系統性能測試與單元測試 340
15.1 慢查詢SQL的檢測與記錄 340
15.2 Flask單元測試 342
15.3 溫故知新 348
15.4 習題 348
第16章 網站部署 349
16.1 伺服器部署 349
16.2 網站部署 354
16.3 溫故知新 356
16.4 習題 356
作者簡介
錢游 畢業於重慶大學計算機科學與技術專業。有十餘年的軟體開發經驗,先後在西部數碼成都西維數碼科技有限公司和中企動力重慶分公司任職,歷任Java程式設計師、系統架構師等職。參與開發過的項目有
重慶力帆集團績效考核系統、重慶國電睿霖電氣有限公司暨物聯網雲平台、重慶科創職業學院官網、重慶城市職業學院官網等。長期使用Flask框架進行Web套用開發,在Web開發、微商城開發、Android移動開發等領域有豐富的實戰經驗。現從事移動網際網路與物聯網套用等領域的研究。