關(guān)于我們
書單推薦
新書推薦
|
Flask 2+Vue.js 3實戰(zhàn)派——Python Web開發(fā)與運維 讀者對象:本書適合所有對Flask感興趣的讀者閱讀學習。
本書主要介紹了Flask編程開發(fā)與運維過程中涉及的方法、技巧和實戰(zhàn)經(jīng)驗,共5篇。"第1篇 基礎”介紹用Flask開發(fā)Web應用的基礎知識;"第2篇 后臺項目實戰(zhàn)”通過開發(fā)一個商城系統(tǒng)的后臺來融合前面章的知識點;"第3篇 進階”通過Flask Rest Framework框架來設計和實現(xiàn)RESTful風格的接口,以及分層的自動化測試和基于Redis的緩存技術(shù);"第4篇 前臺項目實戰(zhàn)”使用前后端分離的方式開發(fā)商城系統(tǒng)前臺,涉及Vue.js、Axios、Vue Router、Vuex、RESTful接口等技術(shù)。"第5篇 部署運維”涉及Flask的傳統(tǒng)部署,F(xiàn)lask的Docker部署,持續(xù)集成,持續(xù)交付和持續(xù)部署,運維監(jiān)控。本書通過完整的商城系統(tǒng)實例,融合了Flask開發(fā)中涉及的知識點;通過大量實例手把手帶領(lǐng)讀者從需求、開發(fā)、集成、代碼安全檢測、測試、部署上線等環(huán)節(jié)踐行"軟件開發(fā)運維一體化”的理念。
微軟最有價值專家(MSMVP),20年的IT開發(fā)經(jīng)驗,擅長C#、python編程,擅長C/S、B/S編程,具有豐富的項目實戰(zhàn)開發(fā)經(jīng)驗。曾負責微軟全國.NET俱樂部的區(qū)域發(fā)起與推廣,具有豐富的線上線下培訓經(jīng)驗,F(xiàn)致力于.NET Core的應用和推廣。2007年4月,作為軟件創(chuàng)新英雄,在"北大百年講堂”接受比爾蓋茨先生的頒獎。2008年3月,榮獲微軟十大杰出IT英雄。2008年出版《sharepoint server 2007 案列實戰(zhàn)開發(fā)》,廣受好評,F(xiàn)就職于中國電信新疆公司企業(yè)信息化部,在工作期間,先后主持多個大型項目,先后榮獲集團科技進步二等獎,省公司科技進步一等獎。高級工程師\軟件工程碩士\架構(gòu)師\省創(chuàng)新杰出人才\通信評標專家\集團公司B級人才\中央企業(yè)先進員工。目前作者運營公眾號、頭條號、百家號,名稱均為"Python辦公自動化",每周分享技術(shù)、職場經(jīng)驗,其中多個技術(shù)專欄,受到廣大用戶的認可。閑暇之余分享點文字、編程、設計等干貨。
第1篇 基礎
= 第1章 走進Flask /2 1.1 了解Flask /2 1.1.1 Flask的特點 /2 1.1.2 MVC和MTV模式 /3 1.1.3 Flask的核心庫 /4 1.1.4 Flask的擴展庫 /5 1.2 安裝Flask /6 1.2.1 使用國內(nèi)鏡像源加速安裝第三方包 /6 1.2.2 安裝Python虛擬環(huán)境 /6 1.2.3 通過pip命令安裝Flask /7 1.3 利用PyCharm編輯器進行Flask開發(fā) /8 1.4 【實戰(zhàn)】開發(fā)第一個Flask應用 /9 1.4.1 使用PyCharm開發(fā)一個Flask程序 /9 1.4.2 初步認識Flask程序 /10 1.5 Flask項目的調(diào)試模式 /11 1.6 Flask配置的保存/加載 /12 1.6.1 使用app.config屬性保存配置參數(shù) /13 1.6.2 加載配置文件的兩種方法 /13 1.7 采用Flask-Script擴展庫作為項目的啟動方案 /14 1.7.1 安裝Flask-Script /14 1.7.2 用Flask-Script替代默認的Flask應用對象 /14 1.7.3 Flask-Script常用的功能 /15 1.8 Flask在后端開發(fā)中的作用 /17 = 第2章 網(wǎng)站的入口——Flask的路由和視圖 /18 2.1 使用Flask中的路由 /18 2.1.1 使用裝飾器@app.route配置路由 /18 2.1.2 使用app.add_url_rule()方法配置路由 /19 2.1.3 查看路由規(guī)則 /20 2.1.4 解析動態(tài)路由 /21 2.1.5 使用url_for()函數(shù)反向解析路由 /21 2.2 認識視圖函數(shù) /22 2.2.1 什么是視圖函數(shù) /23 2.2.2 視圖函數(shù)的底層原理 /23 2.2.3 視圖處理函數(shù) /30 2.3 認識視圖類 /34 2.3.1 什么是視圖類 /34 2.3.2 利用視圖類進行功能設計 /35 = 第3章 開發(fā)頁面——基于Jinja 2模板 /37 3.1 Flask模板引擎——Jinja 2 /37 3.1.1 模板變量 /37 3.1.2 模板標簽 /39 3.1.3 模板過濾器 /42 3.2 模板的高級用法 /44 3.2.1 模板轉(zhuǎn)義——保證代碼的安全 /44 3.2.2 【實戰(zhàn)】自定義過濾器 /45 3.2.3 【實戰(zhàn)】自定義全局函數(shù) /46 3.2.4 全局模板變量和局部模板變量 /47 3.3 模板繼承 /48 3.3.1 【實戰(zhàn)】設計母版頁 /48 3.3.2 【實戰(zhàn)】設計內(nèi)容頁 /49 3.3.3 【實戰(zhàn)】設計組件 /50 3.3.4 宏 /51 3.4 配置模板文件 /53 3.4.1 理解HTML、CSS和JavaScript /53 3.4.2 配置靜態(tài)文件 /53 3.5 閃現(xiàn)消息 /55 = 第4章 使用數(shù)據(jù)庫——基于Flask模型 /58 4.1 認識Flask-SQLAlchemy模塊 /58 4.1.1 Flask-SQLAlchemy模塊的參數(shù)配置 /59 4.1.2 鏈接常見數(shù)據(jù)庫的寫法 /60 4.2 認識Flask模型 /61 4.2.1 定義模型 /61 4.2.2 字段的類型 /62 4.2.3 字段的參數(shù) /63 4.2.4 _ _repr_ _()方法 /65 4.3 使用Flask模型操作數(shù)據(jù)庫 /65 4.3.1 了解ORM /65 4.3.2 創(chuàng)建數(shù)據(jù)庫表 /66 4.3.3 新增數(shù)據(jù) /68 4.3.4 查詢數(shù)據(jù) /69 4.3.5 修改數(shù)據(jù) /77 4.3.6 刪除數(shù)據(jù) /77 4.3.7 執(zhí)行原生SQL語句 /78 4.3.8 事務處理 /79 4.4 認識和操作Flask模型關(guān)系 /81 4.4.1 “一對多”關(guān)系 /81 4.4.2 “一對一”關(guān)系 /84 4.4.3 “多對多”關(guān)系 /86 4.5 數(shù)據(jù)模型的遷移 /89 4.5.1 實例化Migrate 類 /89 4.5.2 初始化 /90 4.5.3 生成遷移腳本 /90 4.5.4 執(zhí)行遷移 /91 4.5.5 解決執(zhí)行遷移過程中的報錯 /91 4.5.6 回退到某次修改 /91 4.5.7 從數(shù)據(jù)庫表到模型 /92 = 第5章 展現(xiàn)界面——基于Flask表單 /94 5.1 HTML表單 /94 5.1.1 【實戰(zhàn)】用戶登錄 /95 5.1.2 【實戰(zhàn)】使用傳統(tǒng)表單上傳文件 /96 5.2 Flask表單 /97 5.2.1 認識WTForms和Flask-WTF /98 5.2.2 表單驗證 /105 5.2.3 【實戰(zhàn)】使用Form-WTF表單上傳文件 /108 5.2.4 【實戰(zhàn)】使用Flask-Uploads擴展庫上傳文件 /110 5.3 使用AJAX提交表單 /114 5.3.1 基于jQuery技術(shù)實現(xiàn)AJAX /114 5.3.2 在AJAX請求中設置令牌(csrf_token) /114 5.3.3 【實戰(zhàn)】使用AJAX實現(xiàn)用戶登錄 /115 = 第6章 用戶認證和權(quán)限管理——基于Flask-Login庫 /118 6.1 初識Flask-Login庫 /118 6.1.1 安裝Flask-Login庫 /118 6.1.2 Flask-Login庫的使用流程 /118 6.2 【實戰(zhàn)】利用用戶模型實現(xiàn)用戶身份認證及狀態(tài)保持 /120 6.2.1 實例化LoginManager對象 /121 6.2.2 定義用戶模型 /121 6.2.3 注冊用戶 /122 6.2.4 登錄用戶 /122 6.2.5 退出用戶 /123 6.2.6 顯示用戶首頁 /123 6.3 【實戰(zhàn)】開發(fā)一個Flask用戶權(quán)限管理模塊 /124 6.3.1 建立角色模型、用戶模型和權(quán)限模型 /124 6.3.2 建立表單 /126 6.3.3 顯示角色 /127 6.3.4 修改角色 /128 6.3.5 登錄裝飾器 /130 6.3.6 權(quán)限裝飾器 /131 = 第7章 Flask后臺管理——基于Flask-Admin庫 /133 7.1 使用Flask-Admin庫實現(xiàn)后臺管理系統(tǒng) /133 7.1.1 進入后臺管理系統(tǒng) /134 7.1.2 在后臺管理系統(tǒng)中設置導航鏈接并美化頁面 /134 7.2 Flask-Admin庫的進階用法 /136 7.2.1 在Admin后臺顯示自定義的模型 /136 7.2.2 漢化界面 /137 7.2.3 顯示中文字段 /138 7.2.4 定制頁面功能 /138 7.2.5 上傳圖片 /140 7.2.6 在列表頁面中顯示圖像 /140 7.2.7 自定義超鏈接 /141 7.2.8 批量處理 /143 7.2.9 顯示“一對多”關(guān)系字段 /144 7.2.10 與Flask-Login庫結(jié)合使用,實現(xiàn)用戶認證 /145 = 第2篇 項目入門實戰(zhàn) = 第8章 【實戰(zhàn)】使用Flask + Bootstrap框架開發(fā)圖書管理系統(tǒng)后臺 /149 8.1 設計分析 /149 8.1.1 需求分析 /149 8.1.2 架構(gòu)設計 /150 8.1.3 最終效果 /150 8.2 開發(fā)圖書管理系統(tǒng)后臺 /151 8.2.1 規(guī)劃工程目錄 /151 8.2.2 搭建母版頁 /152 8.2.3 開發(fā)“出版社管理”模塊 /152 8.2.4 開發(fā)“作者管理”模塊 /160 8.2.5 開發(fā)“圖書管理”模塊 /163 8.2.6 開發(fā)首頁 /171 = 第3篇 項目進階實戰(zhàn) = 第9章 Flask進階 /175 9.1 請求上下文和應用上下文 /175 9.1.1 請求上下文(request context) /175 9.1.2 應用上下文(application context) /176 9.2 鉤子函數(shù) /178 9.3 認識藍圖 /180 9.4 日志管理 /181 9.5 信號 /182 9.6 測試 /184 9.6.1 單元自動化測試 /185 9.6.2 接口自動化測試 /185 9.6.3 用戶界面自動化測試 /185 9.6.4 了解單元測試框架unittest /186 9.6.5 【實戰(zhàn)】使用unittest進行單元測試 /186 9.6.6 【實戰(zhàn)】使用Flask + unittest 進行接口自動化測試 /188 9.6.7 【實戰(zhàn)】使用Pytest進行單元測試 /190 9.6.8 【實戰(zhàn)】使用Flask + Pytest進行接口自動化測試 /192 9.7 使用Flask-Cache庫實現(xiàn)緩存 /194 9.7.1 安裝Flask-Cache庫 /194 9.7.2 了解不同的緩存 /194 9.7.3 Flask-Cache庫的常見用法 /194 9.7.4 用Redis作為緩存的后端存儲 /198 9.8 分布式任務隊列Celery /201 9.8.1 Celery的組件及其工作原理 /201 9.8.2 安裝Celery /202 9.8.3 【實戰(zhàn)】第一個Celery程序 /202 9.9 使用Flask-Mail庫實現(xiàn)郵件發(fā)送 /203 9.9.1 安裝Flask-Mail庫 /203 9.9.2 配置變量 /204 9.9.3 獲取授權(quán)碼 /204 9.9.4 郵件發(fā)送的示例 /205 9.10 認識工廠函數(shù) /206 9.10.1 為什么要使用工廠函數(shù) /206 9.10.2 創(chuàng)建一個工廠函數(shù) /206 = 第10章 【實戰(zhàn)】使用Flask + Bootstrap框架開發(fā)商城系統(tǒng)后臺 /209 10.1 設計分析 /209 10.1.1 需求分析 /209 10.1.2 架構(gòu)設計 /210 10.1.3 最終效果 /210 10.2 開發(fā)商城系統(tǒng)后臺 /210 10.2.1 規(guī)劃工程目錄 /211 10.2.2 開發(fā)商品分類模塊 /214 10.2.3 開發(fā)商品信息模塊 /222 10.2.4 使用信號和Flask-Mail發(fā)送注冊成功郵件 /229 10.2.5 使用Flask-Cache緩存商品數(shù)據(jù) /231 10.2.6 開發(fā)首頁 /233 10.2.7 使用Celery定時將首頁生成靜態(tài)頁 /236 = 第4篇 前后端分離項目實戰(zhàn) = 第11章 接口的設計與實現(xiàn) /242 11.1 前后端分離 /242 11.1.1 了解前后端分離 /242 11.1.2 為什么要前后端分離 /243 11.1.3 如何實施前后端分離 /244 11.1.4 前后端分離的技術(shù)棧 /245 11.2 設計符合標準的RESTFul接口 /245 11.3 接口開發(fā)——基于Flask-RESTFul框架 /247 11.3.1 安裝Flask-RESTFul /247 11.3.2 快速編寫一個Flask API /247 11.3.3 認識請求 /249 11.3.4 認識響應 /253 11.3.5 使用藍圖 /262 11.4 接口安全機制 /262 11.4.1 基于HTTPTokenAuth實現(xiàn)Token認證 /262 11.4.2 基于Flask-JWT-Extended實現(xiàn)JWT認證 /265 11.4.3 基于后端技術(shù)的跨域解決方案 /269 11.5 【實戰(zhàn)】利用Flasgger生成專業(yè)的Swagger文檔 /271 11.5.1 安裝及配置Flasgger /271 11.5.2 生成Swagger文檔 /271 11.6 使用Flask-RESTX改進Flask-RESTFul /273 11.7 【實戰(zhàn)】實現(xiàn)圖書管理系統(tǒng)的接口 /275 11.7.1 規(guī)劃工程目錄 /275 11.7.2 出版社相關(guān)接口 /275 11.8 【實戰(zhàn)】使用Postman測試接口 /279 11.8.1 發(fā)起GET請求 /279 11.8.2 發(fā)起POST請求 /280 11.8.3 發(fā)起PUT請求 /280 11.8.4 發(fā)起DELETE請求 /281 = 第12章 快速入門前端開發(fā)—— Vue.js 3 + Vite + Pinia /282 12.1 前端開發(fā)利器——Vue.js框架 /282 12.1.1 認識Vue.js /282 12.1.2 Vue.js 3的新特性 /282 12.2 搭建開發(fā)環(huán)境 /283 12.2.1 安裝Node.js /283 12.2.2 使用Vue CLI腳手架創(chuàng)建Vue.js 3項目 /284 12.2.3 使用Vite創(chuàng)建Vue.js 3項目 /287 12.2.4 使用Visual Stdio Code編輯器進行前端代碼開發(fā) /290 12.3 Vue.js 3的組合式API /292 12.3.1 選項式API和組合式API的對比 /292 12.3.2 使用<script setup lang="ts">創(chuàng)建組合式API /294 12.3.3 ref()函數(shù)和reactive()函數(shù)的區(qū)別 /295 12.4 Vue.js的基本操作 /296 12.4.1 用插值實現(xiàn)數(shù)據(jù)綁定 /296 12.4.2 用class和style設置樣式 /297 12.4.3 用v-for實現(xiàn)列表渲染 /298 12.4.4 用v-on或者@綁定事件 /299 12.4.5 用v-model實現(xiàn)雙向數(shù)據(jù)綁定 /300 12.4.6 用computed計算屬性監(jiān)聽數(shù)據(jù) /301 12.5 用Axios實現(xiàn)數(shù)據(jù)交互 /302 12.5.1 認識Axios /302 12.5.2 用Axios發(fā)送網(wǎng)絡請求 /302 12.5.3 【案例】實現(xiàn)出版社的增加、刪除、修改和查詢 /305 12.6 用Pinia實現(xiàn)狀態(tài)管理 /308 12.6.1 安裝和初始化 /309 12.6.2 store——狀態(tài)倉庫,用于存儲和管理應用的狀態(tài) /309 12.6.3 state——store中的狀態(tài)數(shù)據(jù) /310 12.6.4 getters——store中的計算屬性 /311 12.6.5 actions——store中的方法 /312 12.7 用Vue Router庫實現(xiàn)路由管理 /313 12.7.1 了解Vue Router庫 /313 12.7.2 安裝和使用 /313 12.7.3 動態(tài)路由 /316 12.7.4 路由嵌套 /317 12.7.5 歷史模式和哈希模式 /319 = 第13章 【實戰(zhàn)】用Vue.js 3 + Vite + Pinia + Flask-RESTFul開發(fā)商城系統(tǒng) /321 13.1 設計分析 /321 13.1.1 需求分析 /321 13.1.2 架構(gòu)設計 /322 13.2 用Vue.js 3開發(fā)商城系統(tǒng)的前臺 /322 13.2.1 核心技術(shù)點介紹 /322 13.2.2 公共頁面開發(fā) /329 13.2.3 “商品首頁”模塊開發(fā) /332 13.2.4 “商品列表”模塊開發(fā) /337 13.2.5 “商品詳情”模塊開發(fā) /343 13.2.6 “用戶登錄”模塊開發(fā) /346 13.2.7 “購物車管理”模塊開發(fā) /347 13.2.8 “訂單管理”模塊開發(fā) /350 13.2.9 “個人中心”模塊開發(fā) /352 13.3 開發(fā)商城系統(tǒng)的后端接口 /357 13.3.1 規(guī)劃工程目錄 /357 13.3.2 會員相關(guān)接口 /360 13.3.3 商品相關(guān)接口 /367 13.3.4 訂單相關(guān)接口 /375 13.3.5 基礎接口——“地址信息”接口 /383 = 第5篇 部署及運維 = 第14章 Flask應用的傳統(tǒng)部署 /389 14.1 部署前的準備工作 /389 14.1.1 準備虛擬機 /389 14.1.2 安裝Python 3.9.13 /389 14.1.3 安裝Python虛擬環(huán)境 /390 14.1.4 安裝Flask /391 14.2 使用MySQL數(shù)據(jù)庫 /392 14.2.1 安裝MySQL數(shù)據(jù)庫 /392 14.2.2 配置MySQL數(shù)據(jù)庫 /393 14.2.3 客戶端連接MySQL數(shù)據(jù)庫 /394 14.2.4 【實戰(zhàn)】生成商城系統(tǒng)的數(shù)據(jù)庫和表 /395 14.3 使用uWSGI進行部署 /396 14.3.1 WSGI、uwsgi和uWSGI的關(guān)系 /396 14.3.2 安裝uwsgi /397 14.3.3 啟動并測試uwsgi /397 14.3.4 詳解配置文件 /398 14.3.5 常用命令 /399 14.3.6 【實戰(zhàn)】部署商城系統(tǒng)后臺 /399 14.4 用Gunicorn進行部署 /400 14.4.1 安裝Gunicorn /400 14.4.2 啟動服務并測試 /401 14.4.3 編寫配置文件 /402 14.4.4 【實戰(zhàn)】部署商城系統(tǒng)接口 /403 14.5 用Supervisor管理進程 /404 14.5.1 安裝和配置 /404 14.5.2 了解配置文件 /404 14.5.3 常用命令 /405 14.5.4 Web監(jiān)控界面 /405 14.5.5 【實戰(zhàn)】管理進程 /406 14.6 用Nginx進行代理 /407 14.6.1 正向代理和反向代理 /407 14.6.2 為什么用了uWSGI還需要用Nginx /408 14.6.3 安裝Nginx /408 14.6.4 了解配置文件 /409 14.6.5 【實戰(zhàn)】部署商城系統(tǒng)后臺 /411 14.6.6 【實戰(zhàn)】部署商城系統(tǒng)接口 /412 14.6.7 【實戰(zhàn)】部署商城系統(tǒng)前臺 /413 14.6.8 【實戰(zhàn)】利用Nginx負載均衡部署商城系統(tǒng)接口 /413 = 第15章 Flask應用的Docker部署 /416 15.1 介紹Docker /416 15.1.1 了解Docker /416 15.1.2 虛擬機和容器的區(qū)別 /417 15.1.3 了解Docker的鏡像、容器和倉庫 /418 15.2 安裝并啟動Docker /419 15.2.1 安裝Docker /419 15.2.2 啟動Docker /420 15.3 操作Docker鏡像 /421 15.3.1 搜索鏡像 /421 15.3.2 獲取鏡像 /421 15.3.3 查看鏡像 /422 15.3.4 導入/導出鏡像 /423 15.3.5 配置國內(nèi)鏡像倉庫 /423 15.4 操作Docker容器 /424 15.4.1 啟動容器 /424 15.4.2 進入容器 /426 15.4.3 停止容器 /427 15.4.4 刪除容器 /427 15.4.5 復制容器內(nèi)的文件 /427 15.4.6 查看容器內(nèi)的日志 /428 15.5 【實戰(zhàn)】用Docker部署MySQL /428 15.5.1 拉取鏡像 /428 15.5.2 創(chuàng)建容器 /429 15.5.3 進入MySQL容器 /429 15.6 【實戰(zhàn)】用Docker方式部署Redis /429 15.6.1 拉取Redis /429 15.6.2 創(chuàng)建并啟動Redis容器 /430 15.7 制作自己的鏡像——編寫Dockerfile文件 /431 15.7.1 語法規(guī)則 /431 15.7.2 構(gòu)建Nginx鏡像 /432 15.8 將鏡像推送到私有倉庫Harbor中 /433 15.8.1 搭建Harbor私有倉庫 /433 15.8.2 安裝Docker-Compose /433 15.8.3 安裝Harbor /434 15.8.4 登錄Harbor /435 15.8.5 配置、使用Harbor /436 15.9 【實戰(zhàn)】用Docker部署商城系統(tǒng)的接口 /437 15.9.1 拉取并啟動MySQL容器 /438 15.9.2 創(chuàng)建接口鏡像并啟動容器 /438 15.9.3 拉取并啟動Nginx容器 /440 15.10 【實戰(zhàn)】用Docker Compose部署多個容器 /441 15.10.1 編排容器文件 /442 15.10.2 構(gòu)建和啟動 /443
你還可能感興趣
我要評論
|