Python Web 開發手冊:基礎·實戰·強化

明日科技

  • 出版商: 化學工業
  • 出版日期: 2022-02-01
  • 售價: $768
  • 貴賓價: 9.5$730
  • 語言: 簡體中文
  • 頁數: 391
  • 裝訂: 平裝
  • ISBN: 7122401235
  • ISBN-13: 9787122401236
  • 相關分類: Python
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

《Python Web開發手冊:基礎·實戰·強化》是“計算機科學與技術手冊系列”圖書之一,該系列圖書內容全面,
以理論聯繫實際、能學到並做到為宗旨,以技術為核心,以案例為輔助,
引領讀者全面學習基礎技術、代碼編寫方法和具體應用項目。
旨在為想要進入相應領域或者已經在該領域深耕多年的技術人員提供新而全的技術性內容及案例。
本書以Python語言為載體講解Web開發,分為4篇,分別是:
Web基礎篇、Flask框架實戰篇、Django框架實戰篇和項目強化篇,共30章,
內容由淺入深,循序漸進,使讀者在打好基礎的同時逐步提升。
本書內容包含了Web開發必備的基礎知識和數據庫相關知識,
以較大篇幅講解了目前應用較廣的兩個框架(Flask和Django)和相應的14個關鍵案例,
同時配備了兩個大型項目,使讀者能夠同步做出產品,達到學到並且做到的目的。
本書適合Python Web開發從業者、Python開發程序員、
Python開發以及人工智能的愛好者閱讀,也可供高校計算機相關專業師生參考。

作者簡介

明日科技

是一家以軟件開發和教育為主的高科技公司,為國家高新技術企業和雙軟認證企業。
開發的系統有鐵路多媒體查詢系統、長春電子地圖、天氣預報系統、礦山瓦斯報警系統等軟件產品。
開發的圖書有《程序開發範例寶典》、《軟件開發視頻大講堂》、《軟件開發1200例》、
《零基礎學系列》、《項目開發實戰入門》等多個系列圖書,多個品種榮獲“全行業**暢銷書”獎項,
《軟件開發視頻大講堂》、《零基礎學系列》系列是目前市場上暢銷的專業基礎編程類叢書。

目錄大綱

第1篇 Web基礎篇 
第1章 Web基礎 
1.1 Web概述 3 
1.1.1 Web的發展歷程 3 
1.1.2 Web程序工作原理 4 
1.2 Web框架簡介 5 
1.2.1 ORM簡介 5 
1.2.2 模板引擎 5 
1.3 常用的Python Web框架 6 
1.3.1 Flask 6 
1.3.2 Django 6 
1.3.3 Tornado 6 
1.4 搭建Web開發環境 6 
1.4.1 創建虛擬環境 6 
1.4.2 pip包管理工具 7 
1.4.3 切換鏡像源 9 

第2章 前端基礎 
2.1 HTML基礎 12 
2.1.1 HTML簡介 12 
【實例2.1】 個HTML頁面 12 
2.1.2 標籤和元素 13 
2.1.3 表單 15 
2.2 CSS基礎 18 
2.2.1 基礎知識 18 
2.2.2 嵌入CSS樣式 19 
【實例2.2】添加CSS樣式 19 
【實例2.3】使用外部樣式表 21 
2.3 JavaScript基礎 21 
2.3.1 基本語法 21 
2.3.2 使用JavaScript 23 
【實例2.4】彈出對話框 23 
【實例2.5】使用外部JavaScript文件方式修改實例2.4 24 
2.4 jQuery基礎 24 
2.4.1 使用jQuery 25 
2.4.2 基本語法 25 
2.4.3 選擇器 26 
【實例2.6】隱藏

標籤 26 
2.4.4 觸發事件 28 
2.4.5 內容和屬性 29 
【實例2.7】檢測用戶填寫的用戶名和密碼是否符合要求 29 
2.5 Bootstrap框架 31 
2.5.1 安裝Bootstrap 31 
2.5.2 基本使用 32 
【實例2.8】創建一個全屏幕宣傳頁面 32 
2.6 綜合案例——導航欄菜單 33 
2.7 實戰練習 34 

第3章 MySQL的使用 
3.1 MySQL的安裝及配置 36 
3.1.1 MySQL簡介 36 
3.1.2 安裝MySQL 36 
3.1.3 配置MySQL 37 
3.2 庫的相關操作 38 
3.2.1 創建數據庫 38 
3.2.2 查看數據庫 39 
3.2.3 刪除數據庫 39 
3.3 表的相關操作 40 
3.3.1 創建數據表 40 
3.3.2 查看數據表 41 
3.3.3 修改表結構 42 
3.3.4 刪除數據表 42 
3.4 數據類型 43 
3.4.1 數字類型 43 
3.4.2 字符串類型 44 
3.4.3 日期和時間類型 45 
3.5 數據的增查改刪 45 
3.5.1 增加數據 45 
3.5.2 查詢數據 46 
3.5.3 修改數據 49 
3.5.4 刪除數據 49 
3.6 PyMySQL操作數據庫 50 
3.6.1 安裝PyMySQL 50 
3.6.2 連接數據庫 50 
3.6.3 游標對象 51 
【實例3.1】向mrsoft數據庫中添加books圖書表 52 
3.6.4 操作數據庫 53 
【實例3.2】向books圖書表中添加圖書數據 53 
3.7 ORM模型 54 
3.7.1 ORM簡介 54 
3.7.2 常用的ORM庫 55 
3.8 綜合案例——從數據庫查詢並篩選數據 55 
3.8.1 設計SQL 55 
3.8.2 實現過程 55 
3.9 實戰練習 56 

第2篇 Flask框架實戰篇 
第4章 Flask快速應用 
4.1 Flask基礎 59 
4.1.1 Flask簡介 59 
4.1.2 安裝Flask 59 
4.2 使用Flask輸出Hello World! /?60 
4.2.1 個Flask程序 60 
【實例4.1】輸出Hello World! 60 
4.2.2 開啟debug 60 
4.3 路由 61 
4.3.1 變量規則 61 
【實例4.2】根據不同的用戶名參數,輸出相應的用戶信息 61 
4.3.2 構造URL 62 
4.3.3 HTTP 方法 62 
4.3.4 靜態文件 63 
4.4 綜合案例——模擬登錄 63 
4.5 實戰練習 64 

第5章 Flask的請求與響應 
5.1 請求參數 66 
5.1.1 GET請求 66 
【實例5.1】獲取GET請求參數 66 
5.1.2 POST請求 67 
【實例5.2】獲取表單提交信息 67 
5.2 文件上傳 68 
【實例5.3】實現上傳用戶圖片功能 68 
5.3 鉤子函數的應用 70 
【實例5.4】使用請求鉤子,在執行視圖函數前後執行相應的函數 71 
5.4 接收響應 72 
5.5 響應的格式 72 
5.5.1 MIME類型 72 
5.5.2 JSON數據 73 
5.6 Flask會話 73 
5.6.1 Cookie對象 74 
【實例5.5】使用Cookie判斷用戶是否登錄 74 
5.6.2 Session對象 76 
5.7 綜合案例——用戶登錄 77 
5.8 實戰練習 77 

第6章 Jinja2模板引擎 
6.1 Flask使用Jinja2模板引擎 80 
6.1.1 Jinja2簡介 80 
6.1.2 渲染模板 80 
【實例6.1】渲染首頁模板 80 
6.2 模板中傳遞參數 82 
6.3 模板的控制語句 83 
6.3.1 if語句 83 
6.3.2 for語句 83 
6.3.3 模板上下文 83 
【實例6.2】使用Session判斷用戶是否登錄 84 
6.4 Jinja2的過濾器 85 
6.4.1 常用的過濾器 85 
6.4.2 自定義過濾器 85 
【實例6.3】Flask應用對象的add_template_filter方法定義過濾器 85 
【實例6.4】使用app.template_filter()裝飾器定義過濾器 86 
6.5 宏的應用 87 
6.5.1 宏的定義 87 
6.5.2 宏的導入 87 
6.5.3 include的使用 87 
6.6 模板的繼承 87 
【實例6.5】使用子模板繼承父模板 88 
6.7 提示信息 90 
【實例6.6】使用flash閃現用戶登錄成功或失敗的消息 90 
6.8 綜合案例——自定義錯誤頁面 91 
6.8.1 需求分析 92 
6.8.2 實現過程 92 
6.9 實戰練習 93 

第7章 Flask視圖與藍圖 
7.1 綁定視圖函數 95 
7.1.1 使用app.route 95 
7.1.2 使用add_url_rule 95 
7.2 類視圖 96 
7.2.1 標準類視圖 96 
7.2.2 基於調度方法的類視圖 98 
7.3 裝飾器 99 
7.3.1 裝飾器的定義 99 
7.3.2 基本應用 99 
7.3.3 帶參函數使用裝飾器 101 
7.4 藍圖 102 
7.4.1 簡介 103 
7.4.2 使用藍圖 103 
【實例7.1】使用藍圖創建前台和後台應用 103 
7.5 表單 104 
7.5.1 CSRF 104 
7.5.2 表單類 105 
7.6 綜合案例——驗證用戶登錄 106 
7.7 實戰練習 108 

第8章 Flask操作數據庫 
8.1 常用擴展 110 
8.1.1 Flask-SQLAlchemy擴展 110 
8.1.2 Flask-Migrate擴展 112 
8.1.3 Flask-Script擴展 114 
8.2 管理數據庫 117 
8.2.1 連接數據庫 117 
8.2.2 定義數據模型 118 
8.2.3 定義關係 119 
8.3 增查改刪 121 
8.3.1 創建數據 121 
8.3.2 讀取數據 121 
8.3.3 更新數據 123 
8.3.4 刪除數據 123 
8.4 綜合案例——創建數據表 123 
8.4.1 案例說明 123 
8.4.2 實現案例 123 
8.5 實戰練習 125 

第9章 【案例】Flask_SQLAlchemy篩選網易云免費課程 
9.1 案例效果預覽 126 
9.2 案例準備 127 
9.3 業務流程 127 
9.4 實現過程 127 
9.4.1 創建數據表 128 
9.4.2 設置過濾器 129 
9.5 關鍵技術 132 

第10章 【案例】Splitlines解析數據庫文本中的換行內容 
10.1 案例效果預覽 134 
10.2 案例準備 134 
10.3 業務流程 135 
10.4 實現過程 135 
10.4.1 項目結構 135 
10.4.2 安裝模塊 135 
10.4.3 連接數據庫 135 
10.4.4 業務邏輯 136 
10.4.5 創建父模板 136 
10.4.6 創建詳情文件 137 
10.5 關鍵技術 138

第11章 【案例】Flask_Login用戶登錄校驗 
11.1 案例效果預覽 139 
11.2 案例準備 140 
11.3 業務流程 140 
11.4 實現過程 140 
11.4.1 登錄與權限校驗 140 
11.4.2 更改密碼 145 
11.4.3 登錄成功後的處理 148 
11.5 關鍵技術 150 

第12章 【案例】ECharts顯示折線圖 
12.1 案例效果預覽 153 
12.2 案例準備 153 
12.3 業務流程 154 
12.4 實現過程 154 
12.4.1 安裝依賴 154 
12.4.2 連接數據庫 154 
12.4.3 業務邏輯 155 
12.4.4 渲染頁面 155 
12.5 關鍵技術 160 

第13章 【案例】員工信息審核 
13.1 案例效果預覽 161 
13.2 案例準備 162 
13.3 業務流程 162 
13.4 實現過程 162 
13.5 關鍵技術 166 

第14章 【案例】網頁底部Tab欄設計 
14.1 案例效果預覽 167 
14.2 案例準備 167 
14.3 業務流程 168 
14.4 實現過程 168 
14.4.1 設置路由 168 
14.4.2 創建父模板 168 
14.4.3 繼承父模板 169 
14.5 關鍵技術 170 

第15章 【案例】多條件查詢的使用 
15.1 案例效果預覽 171 
15.2 案例準備 172 
15.3 業務流程 172 
15.4 實現過程 172 
15.4.1 概述 172 
15.4.2 篩選酒店信息 173 
15.4.3 學生選課系統 175 
15.5 關鍵技術 176 

第3篇 Django框架實戰篇 
第16章 Django快速應用 
16.1 使用Django框架 179 
16.1.1 新版本特性 179 
16.1.2 安裝Django 179 
16.2 個Django項目 179 
【實例16.1】使用命令行創建項目 179 
16.3 創建Django應用 180 
16.4 URL組成部分 182 
16.5 路由 182 
16.5.1 路由形式 182 
【實例16.2】定義路由並創建路由函數 183 
16.5.2 include的使用 184 
16.6 管理後台 185 
16.7 綜合案例——Hello Django 187 
16.8 實戰練習 189 

第17章 Django模板引擎 
17.1 DTL介紹 191 
17.1.1 DTL簡介 191 
17.1.2 渲染模板 191 
【實例17.1】創建並渲染模板 191 
17.1.3 模板路徑 193 
17.2 模板變量 193 
17.3 常用標籤 194 
17.4 過濾器 197 
17.4.1 常用過濾器 197 
17.4.2 自定義過濾器 199 
17.5 簡化模板 200 
17.5.1 引入模板 200 
17.5.2 繼承模板 201 
17.6 加載靜態文件 202 
17.7 綜合案例——時間過濾器 202 
17.8 實戰練習 204 

第18章 Django視圖與表單 
18.1 視圖簡介 206 
18.1.1 視圖函數 206 
【實例18.1】創建獲取當前日期的視圖函數 206 
18.1.2 視圖類 206 
18.2 請求裝飾器 210 
18.3 請求與響應 210 
18.3.1 請求對象 211 
18.3.2 響應對象 211 
18.4 重定向 212 
18.5 自定義錯誤頁面 213 
18.6 使用表單 214 
18.6.1 表單的基本使用 214 
18.6.2 驗證數據 215 
18.7 ModelForm 217 
18.7.1 使用方法 217 
18.7.2 字段類型 219 
18.7.3 表單驗證 220 
18.7.4 save()方法 221 
18.7.5 字段選擇 222 
18.8 文件上傳 222 
18.9 綜合案例——用戶註冊 224 
18.10 實戰練習 226 

第19章 Django模型與數據庫 
19.1 數據庫操作 228 
19.2 ORM模型 228 
19.2.1 添加數據模型 229 
19.2.2 數據遷移 230 
19.2.3 數據API 231 
19.3 多關聯模型 233 
19.3.1 一對一 233 
19.3.2 多對一 235 
19.3.3 多對多 238 
19.4 定制管理後台 241 
19.4.1 ModelAdmin.fields 241 
19.4.2 ModelAdmin.fieldset 242 
19.4.3 ModelAdmin.list_display 244 
19.4.4 ModelAdmin.list_display_links 246 
19.4.5 ModelAdmin.list_editable 246 
19.4.6 ModelAdmin.list_filter 247 
19.5 綜合案例——使用模型操作數據庫 250 
19.6 實戰練習 252 

第20章 Django緩存 
20.1 Session會話 254 
20.1.1 啟用會話 254 
20.1.2 配置會話引擎 254 
20.1.3 常用方法 255 
20.1.4 自動登錄 256 
【實例20.1】使用會話實現登錄功能 256 
20.1.5 退出登錄 259 
20.2 Memcached緩存系統 259 
20.3 Redis數據庫 261 
20.4 用戶權限 263 
20.4.1 用戶對象 264 
20.4.2 權限和分組 266 
20.5 綜合案例——登錄驗證 268 
20.6 實戰練習 268 

第21章 【案例】Celery異步發送驗證郵件 
21.1 案例效果預覽 269 
21.2 案例準備 269 
21.3 業務流程 270 
21.4 實現過程 270 
21.4.1 數據遷移 270 
21.4.2 郵箱配置 271 
21.4.3 設置路由 272 
21.4.4 前端頁面 272 
21.4.5 業務邏輯 273 
21.4.6 異步任務 274 
21.4.7 啟動項目 275 
21.5 關鍵技術 275 

第22章 【案例】自定義Admin命令 
22.1 案例效果預覽 276 
22.2 案例準備 276 
22.3 業務流程 277 
22.4 實現過程 277 
22.4.1 定義命令 277 
22.4.2 項目日誌 278 
22.5 關鍵技術 281 

第23章 【案例】Channels實現Web Socket聊天室 
23.1 案例效果預覽 282 
23.2 案例準備 283 
23.3 業務流程 283 
23.4 實現過程 283 
23.4.1 安裝Channels 283 
23.4.2 創建APP 284 
23.4.3 配置模板 284 
23.4.4 添加路由 285 
23.4.5 配置Channels路由 285 
23.4.6 完成WebSocket 287 
23.4.7 升級為異步執行 287 
23.5 關鍵技術 290 

第24章 【案例】Paginator實現數據分頁 
24.1 案例效果預覽 291 
24.2 案例準備 291 
24.3 業務流程 292 
24.4 實現過程 292 
24.4.1 添加路由 292 
24.4.2 分頁邏輯 292 
24.4.3 渲染模板 293 
24.4.4 運行程序 294 
24.5 關鍵技術 294 

第25章 【案例】Ajax多級下拉框聯動 
25.1 案例效果預覽 296 
25.2 案例準備 296 
25.3 業務流程 296 
25.4 實現過程 297 
25.4.1 匹配路由 297 
25.4.2 添加模板 297 
25.4.3 業務邏輯 298 
25.4.4 關閉CSRF防護 298 
25.5 關鍵技術 299 

第26章 【案例】Haystack站內全局搜索引擎 
26.1 案例效果預覽 301 
26.2 案例準備 301 
26.3 業務流程 302 
26.4 實現過程 302 
26.4.1 準備環境 302 
26.4.2 註冊模塊 302 
26.4.3 配置搜索引擎 303 
26.4.4 業務邏輯 304 
26.4.5 渲染模板 304 
26.5 關鍵技術 306 

第27章 【案例】Message消息提示 
27.1 案例效果預覽 307 
27.2 案例準備 307 
27.3 業務流程 307 
27.4 實現過程 308 
27.4.1 配置文件 308 
27.4.2 消息引擎 309 
27.4.3 添加路由 309 
27.4.4 業務邏輯 309 
27.4.5 渲染模板 310 
27.5 關鍵技術 311

第4篇 項目強化篇 
第28章 基於Flask框架的51商城 
28.1 系統需求分析 314 
28.2 系統功能設計 314 
28.2.1 系統功能結構 314 
28.2.2 系統業務流程 314 
28.2.3 系統預覽 315 
28.3 系統開發**備 319 
28.3.1 系統開發環境 319 
28.3.2 文件夾組織結構 319 
28.4 數據庫設計 320 
28.4.1 數據庫概要說明 320 
28.4.2 數據表模型 320 
28.4.3 數據表關係 322 
28.5 會員註冊模塊設計 323 
28.5.1 會員註冊模塊概述 323 
28.5.2 會員註冊頁面 323 
28.5.3 驗證並保存註冊信息 327 
28.6 會員登錄模塊設計 328 
28.6.1 會員登錄模塊概述 328 
28.6.2 創建會員登錄頁面 328 
28.6.3 保存會員登錄狀態 331 
28.6.4 會員退出功能 331 
28.7 首頁模塊設計 332 
28.7.1 首頁模塊概述 332 
28.7.2 顯示#新上架商品 333 
28.7.3 顯示打折商品 334 
28.7.4 顯示熱門商品 335 
28.8 購物車模塊 336 
28.8.1 購物車模塊概述 336 
28.8.2 顯示商品詳細信息 336 
28.8.3 添加購物車 338 
28.8.4 查看購物車 339 
28.8.5 保存訂單 340 
28.8.6 查看訂單 341 
28.9 後台功能模塊設計 341 
28.9.1 後台登錄模塊設計 341 
28.9.2 商品管理模塊設計 342 
28.9.3 銷量排行榜模塊設計 343 
28.9.4 會員管理模塊設計 343 
28.9.5 訂單管理模塊設計 344 

第29章 基於Django框架的綜藝之家管理系統 
29.1 系統需求分析 346 
29.1.1 系統概述 346 
29.1.2 系統可行性分析 346 
29.1.3 系統用戶角色分配 346 
29.1.4 功能性需求分析 347 
29.1.5 非功能性需求分析 347 
29.2 系統功能設計 347 
29.2.1 系統功能結構 347 
29.2.2 系統業務流程 347 
29.2.3 系統預覽 348 
29.3 系統開發**備 349 
29.3.1 系統開發環境 349 
29.3.2 文件夾組織結構 350 
29.4 數據庫設計 350 
29.4.1 數據庫概要說明 350 
29.4.2 數據表模型 350 
29.4.3 數據表關係 352 
29.5 綜藝管理模塊設計 352 
29.5.1 實現後台錄入綜藝信息和綜藝視頻的功能 353 
29.5.2 前台首頁功能 354 
29.5.3 綜藝詳情頁功能 356 
29.6 搜索功能模塊設計 359 
29.7 分類功能模塊設計 361 
29.8 社交管理模塊設計 364 
29.8.1 安裝django-spirit模塊 364 
29.8.2 發帖和回帖功能 365 
29.8.3 論壇管理後台功能 366 
29.9 可視化展示模塊設計 367 
29.9.1 ECharts開源可視化圖表庫基本使用 367 
29.9.2 AJAX異步加載圖表數據 369 

第30章 Web項目部署 
30.1 常見的部署方式 374 
30.1.1 WSGI 374 
30.1.2 Gunicorn 374 
30.1.3 Nginx 374 
30.1.4 supervisor 375 
30.2 雲服務器配置 375 
30.2.1 常用的雲服務器 375 
30.2.2 pip包管理工具 377 
30.2.3 虛擬環境 378 
30.3 使用Gunicorn 379 
30.3.1 使用參數啟動Gunicorn 379 
30.3.2 加載配置文件啟動Gunicorn 381 
30.4 使用Nginx 381 
30.4.1 安裝Nginx 381 
30.4.2 Nginx的啟停 382 
30.4.3 配置文件 382 
30.4.4 靜態文件 383 
30.4.5 代理服務器 383 
30.5 使用supervisor 384 
30.5.1 配置文件 385 
30.5.2 常用命令 386 
30.5.3 啟動程序 386 
附錄 
附錄1 Flask框架常用類和函數 388 
附錄2 Flask框架請求對象提供的常用屬性或方法 388 
附錄3 Flask框架響應對象提供的屬性或方法 389 
附錄4 Flask框架常用擴展 389 
附錄5 Django框架常用命令 389 
附錄6 Django框架setting.py常用配置 390 
附錄7 Django框架ORM常用API 390