Django + Vue.js 實戰派 — Python Web 開發與運維

楊永剛

  • 出版商: 電子工業
  • 出版日期: 2022-03-01
  • 售價: $768
  • 貴賓價: 9.5$730
  • 語言: 簡體中文
  • 頁數: 488
  • ISBN: 7121430843
  • ISBN-13: 9787121430848
  • 相關分類: DjangoPython程式語言Vue.js
  • 立即出貨

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

商品描述

本書主要介紹了Django編程開發與運維過程中涉及的方法、技巧和實戰經驗,共分5篇。“第1篇 基礎”介紹用Django開發Web應用的基礎知識;“第2篇 後台項目實戰”通過開發一個商城系統的後台來融合前面章的知識點;“第3篇 進階”通過Django Rest Framework框架來設計和實現RESTful風格的接口,以及分層的自動化測試和基於Redis的緩存技術;“第4篇 前臺項目實戰”使用前後端分離的方式開發商城系統前臺,涉及Vue.js、Axios、Vue Router、Vuex、RESTful接口等技術。“第5篇 部署運維”涉及Django的傳統部署,Django的Docker部署,持續集成,持續交付和持續部署,運維監控。本書通過完整的商城系統實例,融合了Django開發中涉及的知識點;通過大量實例手把手帶領讀者從需求、開發、集成、代碼安全檢測、測試、部署上線等環節踐行“軟件開發運維一體化”的理念。

目錄大綱

★★第1篇基礎  
 
★第1章走進Django /2  
●1.1 了解Django /2  
1.1.1 Django發展歷史和版本/2  
1.1.2 MVC和MTV模式/3  
●1.2 安裝Django /5  
1.2.1 安裝Python虛擬環境/5  
1.2.2 在Windows中安裝Django /7  
●1.3 用VS Code編輯器進行Django開發/8  
1.3.1 設置中文界面/8  
1.3.2 安裝Python插件/9  
1.3.3 安裝Django插件/9  
●1.4 【實戰】開發第1個Django應用/10  
1.4.1 創建項目/10  
1.4.2 創建應用/10  
1.4.3 處理控制器/12  
1.4.4 處理模板/12  
1.4.5 運行應用/13  
●1.5 Django項目的運行和調試/13  
1.5.1 設置運行環境/14  
1.5.2 調試項目/14  
 
★第2章網站的入口——Django的路由和視圖/16  
●2.1 認識路由/16  
2.1.1 路由系統的基本配置/16  
2.1.2 【實戰】用“路由包含”簡化項目的複雜度/17  
2.1.3 解析路由參數/18  
2.1.4 【實戰】用re_path()方法正則匹配複雜路由/20  
2.1.5 反向解析路由/22  
●2.2 認識視圖函數/23  
2.2.1 什麼是視圖函數/23  
2.2.2 視圖函數的底層原理/24  
2.2.3 視圖處理函數的使用/27  
●2.3 認識視圖類/30  
2.3.1 什麼是視圖類/30  
2.3.2 對比視圖函數和視圖類/30  
2.3.3 利用視圖類進行功能設計/31  
 
★第3章頁面展現——基於Django模板/36  
●3.1 Django模板語言——DTL /36  
3.1.1 模板變量/36  
3.1.2 模板標籤/38  
3.1.3 模板過濾器/42  
●3.2 模板的高#級用法/43  
3.2.1 模板轉義/43  
3.2.2 【實戰】自定義過濾器/44  
3.2.3 【實戰】自定義標籤/46  
●3.3 模板繼承/49  
3.3.1 設計母版頁/49  
3.3.2 設計內容頁/50  
3.3.3 設計組件/51  
●3.4 配置模板文件/52  
3.4.1 理解HTML、CSS和JavaScript /52  
3.4.2 配置靜態文件/53  
 
★第4章使用數據庫——基於Django模型/55  
●4.1 Django模型/55  
4.1.1 定義模型/55  
4.1.2 了解模型中的關係/59  
4.1.3 配置項目文件/63  
4.1.4 遷移數據/64  
●4.2 用Django中的ORM操作數據庫/66  
4.2.1 了解ORM /66  
4.2.2 熟悉QuerySet對象/67  
4.2.3 查詢數據/69  
4.2.4 新增數據/70  
4.2.5 更新數據/71  
4.2.6 刪除數據/71  
4.2.7 操作關聯表/71  
4.2.8 F()函數和Q()函數/77  
4.2.9 執行原生SQL /78  
4.2.10 事務處理/81  
 
★第5章自動生成界面——基於Django表單/84  
●5.1 HTML表單/84  
5.1.1 用令牌CSRF保證表單的安全/85  
5.1.2 【實戰】用HTML表單上傳文件/86  
●5.2 Django的Form表單/87  
5.2.1 認識Form表單/87  
5.2.2 表單數據的校驗/93  
5.2.3 表單數據的獲取/97  
5.2.4 【實戰】用Form表單上傳文件/98  
●5.3 Django的模型表單/100  
5.3.1 認識模型表單/100  
5.3.2 校驗模型表單數據/101  
5.3.3 處理模型表單數據/102  
●5.4 使用AJAX提交表單/103  
5.4.1 基於jQuery技術實現AJAX /103  
5.4.2 在AJAX請求中設置令牌csrf_token /104  
5.4.3 【實戰】使用AJAX實現用戶登錄/105  
 
★第6章用戶認證/107  
●6.1 初識用戶認證/107  
6.1.1 認識Auth模塊/107  
6.1.2 了解用戶權限數據表/109  
●6.2 用戶管理/109  
6.2.1 用戶註冊/110  
6.2.2 用戶登錄/111  
6.2.3 擴展用戶模型/113  
●6.3 【實戰】利用用戶模型實現用戶身份認證及狀態保持/114  
6.3.1 增加視圖函數myuser_reg() /114  
6.3.2 增加視圖函數myuser_login() /115  
6.3.3 用戶退出的設置/115  
6.3.4 用戶首頁的顯示/115  
●6.4 權限管理/117  
6.4.1 權限的設置/117  
6.4.2 權限認證的相關方法/117  
6.4.3 自定義用戶權限/118  
6.5 【實戰】用裝飾器控制頁面權限/119  
●6.5.1 增加權限裝飾器/119  
6.5.2 修改模板文件/120  
6.5.3 設置項目配置文件/120  
6.5.4 測試權限/120  
●6.6 中間件技術/121  
6.6.1 認識Django中間件/122  
6.6.2 使用Django中間件/123  
6.6.3 【實戰】用中間件簡化權限認證/125  
 
★★第2篇後台項目實戰  
 
★第7章【實戰】開發一個商城系統的後台/128  
●7.1 商城系統後台的設計分析/128  
7.1.1 需求分析/128  
7.1.2 架構設計/129  
7.1.3 數據庫模型設計/130  
●7.2 使用Django自帶的Admin後台管理系統/131  
7.2.1 創建商城系統後台項目/131  
7.2.2 登錄Admin後台管理系統/133  
7.2.3 配置Admin後台管理系統/133  
●7.3 用Bootstrap框架實現商城系統後台/136  
7.3.1 開發“用戶註冊”模塊/136  
7.3.2 開發“用戶登錄”模塊/140  
7.3.3 開發商城系統後台首頁面/143  
7.3.4 開發“用戶信息維護”模塊/146  
7.3.5 開發“商品分類管理”模塊/156  
7.3.6 開發“商品信息管理”模塊/159  
 
★★第3篇j 階  
 
★第8章接口的設計與實現/168  
●8.1 前後端分離/168  
8.1.1 了解前後端分離/168  
8.1.2 為什麼要前後端分離/169  
8.1.3 如何實施前後端分離/171  
8.1.4 前後端分離的技術棧/171  
●8.2 設計符合標準的RESTful接口/172  
●8.3 序列化和反序列化/174  
8.3.1 認識序列化和反序列化/174  
8.3.2 用JSON模塊進行數據交互/174  
8.3.3 用JsonResponse類進行數據交互/175  
●8.4 接口開發——基於Django Rest Framework框架/176  
8.4.1 安裝DRF框架/177  
8.4.2 用Serializer類和ModelSerializer類進行序列化操作/177  
8.4.3 請求和響應/182  
8.4.4 【實戰】用裝飾器@api-view實現視圖函數/183  
8.4.5 【實戰】用APIView類實現視圖類/185  
8.4.6 【實戰】用Mixins類改進RESTful接口/187  
8.4.7 【實戰】用GenericAPIView類實現視圖類/190  
8.4.8 用視圖集ViewSets改進RESTful接口/192  
8.4.9 分頁/197  
8.4.10 過濾、搜索和排序/198  
8.4.11 自定義消息格式/202  
8.4.12 自定義異常格式/207  
●8.5 接口安全機制/209  
8.5.1 基於DRF框架實現Token認證/209  
8.5.2 基於DRF框架實現JWT認證/212  
8.5.3 基於後端技術的跨域解決方案/218  
●8.6 【實戰】實現商城系統的接口/220  
8.6.1 用戶相關接口/220  
8.6.2 商品相關接口/226  
8.6.3 訂單相關接口/233  
8.6.4 基礎接口——“地址信息”接口/241  
●8.7 【實戰】利用DRF生成接口文檔/243  
8.7.1 安裝依賴/243  
8.7.2 配置文件/243  
8.7.3 測試/243  
●8.8 【實戰】利用Swagger服務讓接口文檔更專業/244  
8.8.1 安裝配置django-rest-swagger /244  
8.8.2 配置視圖類/244  
8.8.3 配置路由/245  
8.8.4 運行效果/245  
 
★第9章分層的自動化測試/246  
●9.1 分層的自動化測試/246  
9.1.1 單元自動化測試/247  
9.1.2 接口自動化測試/247  
9.1.3 用戶界面自動化測試/248  
●9.2 單元自動化測試/248  
9.2.1 認識單元測試框架unittest /248  
9.2.2 【實戰】用unittest進行單元測試/249  
9.2.3 【實戰】用HTMLTestRunner生成HTML報告/251  
9.2.4 【實戰】用Pytest進行單元測試/252  
9.2.5 【實戰】在Django中編寫和運行測試用例/255  
●9.3 接口自動化測試/256  
9.3.1 【實戰】j行Postman測試/257  
9.3.2 【實戰】用“Requests + Pytest”實現接口自動化測試/258  
●9.4 用戶界面自動化測試/260  
9.4.1 認識自動化測試Selenium庫/260  
9.4.2 安裝Selenium庫/260  
9.4.3 基本使用/261  
9.4.4 頁面元素定位的方法/262  
9.4.5 Selenium庫的高#級用法/263  
9.4.6 【實戰】自動化測試商城後台管理系統的登錄頁面/268  
 
★第10章基於Redis的緩存技術/270  
●10.1 為什麼需要緩存/270  
●10.2 用Django內置模塊實現緩存/270  
10.2.1 基於數據庫方式實現緩存/271  
10.2.1 緩存視圖函數和視圖類/271  
●10.3 用DRF框架實現緩存/273  
10.3.1 用裝飾器完成緩存/273  
10.3.2 用CacheResponseMixin類完成緩存/274  
●10.4 用Redis實現緩存/275  
10.4.1 搭建Redis環境/275  
10.4.2 用Django操作Redis /276  
10.4.3 【實戰】用Redis存儲session信息/278  
 
★★第4篇前台項目實戰  
 
★第11章開發商城系統的前台(接第7章實戰) /282  
●11.1 商城系統前台的設計分析/282  
11.1.1 需求分析/282  
11.1.2 架構設計/283  
●11.2 前端開發利器——Vue.js框架/284  
11.2.1 認識Vue.js /284  
11.2.2 用Vue-CLI腳手架快速搭建項目骨架/284  
11.2.3 用NPM進行包管理和分發/286  
11.2.4 用npm run build命令打包項目/287  
11.2.5 用Visual Stdio Code編輯器進行代碼開發/287  
●11.3 Vue.js的基本操作/287  
11.3.1 用插值實現數據綁定/288  
11.3.2 用computed屬性實現變量監聽/289  
11.3.3 用class和style設置樣式/290  
11.3.4 用v-if實現條件渲染/291  
11.3.5 用v-for實現列表渲染/292  
11.3.6 用“v-on:”或“@”實現事件綁定/293  
11.3.7 用v-model實現雙向數據綁定/294  
●11.4 用Vue Router庫實現路由管理/295  
11.4.1 了解Vue Router庫/295  
11.4.2 基本用法/296  
●11.5 用Axios庫實現數據交互/297  
11.5.1 了解Axios庫/297  
11.5.2 基本用法/297  
●11.6 用Vuex實現狀態管理/299  
11.6.1 基本用法/299  
11.6.2 用mutations和actions操作變量/301  
11.6.3 用getters獲取變量/303  
11.6.4 用擴展運算符簡化編寫/304  
●11.7 【實戰】用Vue.js開發商城系統的前台/304  
11.7.1 核心技術點介紹/305  
11.7.2 公共頁面開發/307  
11.7.3 “商品首頁”模塊開發/313  
11.7.4 “商品列表”模塊開發/321  
11.7.5 “商品詳情”模塊開發/328  
11.7.6 “用戶註冊”模塊開發/332  
11.7.7 “用戶登錄”模塊開發/335  
11.7.8 “購物車管理”模塊開發/339  
11.7.9 “訂單管理”模塊開發/344  
11.7.10 “個人中心”模塊開發/348  
 
★★第5篇部署運維  
 
★第12章Django的傳統部署/358  
●12.1 部署前的準備工作/358  
12.1.1 準備虛擬機/358  
12.1.2 安裝Python 3.8.2 /359  
12.1.3 安裝虛擬環境和Django /359  
●12.2 使用MySQL數據庫/361  
12.2.1 安裝MySQL數據庫/361  
12.2.2 配置MySQL數據庫/362  
12.2.3 客戶端連接MySQL數據庫/363  
12.2.4 【實戰】生成商城系統的數據庫和表/365  
●12.3 用uWSGI進行部署/365  
12.3.1 WSGI、uwsgi和uWSGI的關係/365  
12.3.2 安裝uwsgi軟件/366  
12.3.3 啟動並測試uwsgi /367  
12.3.4 詳解配置文件/367  
12.3.5 常用命令/368  
12.3.6 【實戰】部署商城系統後台/368  
●12.4 用Gunicorn進行部署/370  
12.4.1 安裝Gunicorn /370  
12.4.2 啟動服務並測試/371  
12.4.3 編寫配置文件/371  
12.4.4 【實戰】部署商城系統接口/372  
●12.5 用Supervisor管理進程/373  
12.5.1 安裝和配置/373  
12.5.2 了解配置文件/374  
12.5.3 常用命令/374  
12.5.4 Web監控界面/375  
12.5.5 【實戰】用Supervisor管理進程/376  
●12.6 用Nginx j行代理/377  
12.6.1 正向代理和反向代理/377  
12.6.2 為什麼用了uWSGI還需要用Nginx /378  
12.6.3 安裝Nginx /378  
12.6.4 了解配置文件/379  
12.6.5 【實戰】部署商城系統後台/381  
12.6.6 【實戰】部署商城系統接口/382  
12.6.7 【實戰】部署商城系統前台/383  
12.6.8 【實戰】利用Nginx負載均衡部署商城系統接口/384  
 
★第13章Django的Docker部署/388  
●13.1 介紹Docker /388  
13.1.1 為什麼要使用Docker /388  
13.1.2 虛擬機和容器的區別/390  
13.1.3 了解Docker的鏡像、容器和倉庫/390  
●13.2 安裝並啟動Docker /392  
13.2.1 安裝Docker /392  
13.2.2 啟動Docker /393  
●13.3 操作Docker鏡像/394  
13.3.1 搜索鏡像/394  
13.3.2 獲取鏡像/394  
13.3.3 查看鏡像/395  
13.3.4 導入/導出鏡像/396  
13.3.5 配置國內鏡像倉庫/396  
●13.4 操作Docker容器/397  
13.4.1 啟動容器/397  
13.4.2 進入容器/399  
13.4.3 停止容器/400  
13.4.4 刪除容器/400  
13.4.5 複製容器中的文件/401  
13.4.6 查看容器中的日誌/401  
●13.5 【實戰】用Docker部署MySQL /401  
13.5.1 拉取鏡像/401  
13.5.2 創建容器/402  
13.5.3 進入MySQL容器/402  
●13.6 【實戰】用Docker方式部署Redis /403  
13.6.1 拉取Redis /403  
13.6.2 創建並啟動Redis容器/404  
●13.7 製作自己的鏡像——編寫Dockerfile文件/404  
13.7.1 語法規則/404  
13.7.2 構建Nginx鏡像/405  
●13.8 將鏡像推送到私有倉庫Harbor中/407  
13.8.1 搭建Harbor私有倉庫/407  
13.8.2 安裝Docker-Compose /407  
13.8.3 安裝Harbor /407  
13.8.4 登錄Harbor /409  
13.8.5 配置、使用Harbor /409  
●13.9 【實戰】用Docker部署商城系統的接口/411  
13.9.1 拉取並啟動MySQL容器/411  
13.9.2 創建接口鏡像並啟動容器/411  
13.9.3 拉取並啟動Nginx容器/413  
●13.10 【實戰】用Docker Compose部署多容器/416  
13.10.1 編排容器文件/416  
13.10.2 構建和啟動/417  
 
 
★第14章持續集成、持續交付與持續部署/419  
●14.1 了解持續集成/419  
●14.2 了解持續交付/419  
●14.3 了解持續部署/420  
●14.4 代碼版本管理——基於碼雲/420  
14.4.1 Git中的4個概念——工作區、暫存區、本地倉庫、遠程倉庫/420  
14.4.2 克隆遠程庫到本地庫/421  
●14.5 進行持續集成——基於Jenkins /422  
14.5.1 安裝Jenkins /422  
14.5.2 【實戰】商城系統接口的持續構建/424  
●14.6 進行代碼質量掃描——基於SonarQube /429  
14.6.1 安裝SonarQube /430  
14.6.2 【實戰】自動化代碼質量掃描/431  
●14.7 用Jenkins進行持續部署——基於SSH /436  
14.7.1 安裝插件/436  
14.7.2 配置Publish over SSH項/436  
14.7.3 配置SSH免密登錄/437  
14.7.4 配置SSH Server /438  
14.7.5 配置“構建” /438  
14.7.6 立即構建/440  
●14.8 進行自動化測試——基於“Jenkins + Allure + Pytest” /440  
14.8.1 安裝/440  
14.8.2 配置“構建” /442  
14.8.3 配置“構建後操作” /443  
14.8.4 立即構建/444  
14.8.5 常見問題的處理/445  
●14.9 【實戰】用Jenkins流水線部署商城系統接口/446  
14.9.1 流水線操作的語法/446  
14.9.2 部署商城系統接口/447  
 
★第15章運維監控——基於Prometheus + Grafana /454  
●15.1 認識Prometheus /454  
15.1.1 Prometheus的核心組件/455  
15.1.2 安裝並啟動/455  
15.1.3 查看監控指標數據和圖表/456  
15.1.4 了解Prometheus的主配置文件/456  
●15.2 認識Grafana /457  
15.2.1 安裝/458  
15.2.2 配置數據源/458  
15.2.3 導入模板/459  
●15.3 監控主機和服務——基於Prometheus的組件Exporter /460  
15.3.1 監控主機/460  
15.3.2 監控MySQL數據庫/462  
15.3.3 監控Redis /464  
●15.4 實現郵件報警——基於Prometheus的組件Altermanager /465  
15.4.1 安裝配置Alertmanager /465  
15.4.2 了解配置文件/466  
15.4.3 設置報警規則/467  
●15.5 容器監控報警——基於Prometheus的組件cAdvisor /468  
15.5.1 安裝cAdvisor /469  
15.5.2 啟動容器/469  
15.5.3 導入模板/469  
●15.6 對Django應用進行監控/469  
15.6.1 安裝django_prometheus包/470  
15.6.2 配置settings.py文件/470  
15.6.3 配置路由並訪問/470  
15.6.4 配置Prometheus /471  
15.6.5 添加模板/471