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