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

《Django + Vue.js實戰派——Python Web開發與運維》是2022年電子工業出版社出版圖書,作者是楊永剛。

介紹了利用“Django+Vue.js”來完成一個實用的Web商城套用。

基本介紹

  • 書名:Django + Vue.js實戰派——Python Web開發與運維
  • 作者:楊永剛
  • 出版社:電子工業出版社
  • 出版時間:2022年4月
  • 頁數:488 頁
  • 定價:128 元
  • 開本:16 開
  • ISBN:9787121430848
圖書目錄,作者簡介,

圖書目錄

第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.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
第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.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篇 進 階
第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 【實戰】進行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進行代理 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

作者簡介

楊永剛
現就職於中國電信新疆公司大數據與AI中心。
微軟最有價值專家(MSMVP)\高級工程師\軟體工程碩士\系統架構師\省公司創新傑出人才\集團公司B級人才\中央企業先進員工\電信集團認證Hive講師。
20年的IT開發經驗,擅長C#、Python、Java語言,擅長C/S、B/S編程,具有豐富的項目開發經驗。先後主持多個集團級、省級大型項目,任技術經理、項目經理。榮獲集團科技進步二等獎。

相關詞條

熱門詞條

聯絡我們