|
-- 會員 / 註冊 --
|
|
|
|
Django企業開發實戰 高效Python Web框架指南 ( 簡體 字) |
作者:胡陽 | 類別:1. -> 程式設計 -> Python |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 50663 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:2/1/2019 |
頁數:372 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115506894 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書以從零開發一個博客系統為例,介紹Django在日常工作中的應用。 本書共分為四部分。第一部分介紹編碼之前的準備工作,包括需求分析、Web開發基礎以及選型時Demo的練習。第二部分開始正式實現需求,介紹了環境配置、編碼規范以及合理的項目結構劃分。通過對Django各部分(Model、Form、admin、View)的介紹和使用,完成了一個基礎的博客系統。第三部分在前面的基礎上介紹Django第三方插件的使用,通過引入這些插件進一步增強我們的系統。最后一部分也是正式工作中必不可少的部分,包含調試代碼、優化系統、壓力測試以及自動化等內容。 本書適合Python Web開發人員閱讀。 |
目錄:第一部分 初入江湖 第1章 需求 2 1.1 需求文檔 3 1.2 需求評審/分析 4 1.2.1 博客需求評審 5 1.2.2 評審之后 6 1.3 功能分析 6 1.3.1 需求列表 6 1.3.2 功能點梳理 7 1.3.3 模塊劃分 8 1.4 模塊劃分 9 1.4.1 實體及關系 9 1.4.2 模塊劃分 10 1.5 本章總結 12 第2章 框架基礎和技術選型 13 2.1 Python 2.7與Python 3.x 13 2.1.1 歷史演進 13 2.1.2 現實場景 14 2.1.3 為未來做準備 15 2.1.4 參考資料 15 2.2 WSGI——Web框架基礎 15 2.2.1 簡介 15 2.2.2 簡單的Web Server 16 2.2.3 多線程版的Web Server 17 2.2.4 簡單的WSGI Application 20 2.2.5 理解WSGI 22 2.2.6 WSGI中間件和Werkzeug 23 2.2.7 參考資料 24 2.2.8 擴展閱讀 24 2.3 Flask框架 24 2.3.1 入門推薦 25 2.3.2 Flask內置功能 25 2.3.3 匹配需求 26 2.3.4 總結 26 2.4 Tornado框架 26 2.4.1 印象 26 2.4.2 內置功能 27 2.4.3 總結 27 2.5 Django框架 28 2.5.1 新手友好程度 28 2.5.2 內置功能 29 2.5.3 總結 29 2.5.4 參考資料 29 2.6 本章總結 30 第3章 Django小試牛刀 31 3.1 如何閱讀Django文檔 31 3.1.1 文檔結構 31 3.1.2 總結 36 3.2 學員管理系統的后臺開發 37 3.2.1 需求 37 3.2.2 初始化環境 37 3.2.3 創建項目 38 3.2.4 創建App 38 3.2.5 編寫代碼 39 3.2.6 基礎配置(中文) 41 3.2.7 總結 41 3.3 學員管理系統的前臺開發 41 3.3.1 開發首頁 41 3.3.2 輸出數據 42 3.3.3 提交數據 44 3.3.4 優化數據,獲取邏輯 47 3.3.5 總結 47 3.4 學員管理系統的進階部分 48 3.4.1 使用class-based view 48 3.4.2 配置middleware 49 3.4.3 編寫TestCase提升代碼穩定性 53 3.4.4 總結 57 3.5 本章總結 57 第二部分 正式開發 第4章 進入開發 60 4.1 編碼規范 60 4.1.1 import this(Python之禪) 61 4.1.2 Python編碼規范 62 4.1.3 Django編碼風格 66 4.1.4 總結 69 4.1.5 參考資料 69 4.2 虛擬環境 69 4.2.1 Python 3.3之后自帶venv模塊 69 4.2.2 virtualenv的用法 70 4.2.3 總結 71 4.2.4 參考資料 71 4.3 合理的項目結構 71 4.3.1 原則 71 4.3.2 通用項目結構 71 4.3.3 Django項目結構 72 4.3.4 總結 74 4.3.5 參考資料 74 4.4 版本管理與協作:Git 74 4.4.1 我們的協作方式 74 4.4.2 Git的基本概念 75 4.4.3 案例演示 76 4.4.4 Git進階 76 4.4.5 總結 80 4.4.6 參考資料 80 4.5 本章總結 80 第5章 奠定項目基石:Model 81 5.1 創建項目及配置 81 5.1.1 拆分settings以適應不同的運行環境 83 5.1.2 配置settings 84 5.1.3 配置Git 85 5.1.4 總結 86 5.1.5 參考資料 86 5.2 編寫Model層的代碼 86 5.2.1 創建App 87 5.2.2 配置INSTALLED_APPS 92 5.2.3 創建數據庫[表] 93 5.2.4 提交代碼 95 5.2.5 總結 96 5.2.6 參考資料 96 5.3 Model層:字段介紹 96 5.3.1 ORM的基本概念 97 5.3.2 常用字段類型 98 5.3.3 參數 99 5.3.4 總結 100 5.3.5 參考資料 101 5.4 Model層:QuerySet的使用 101 5.4.1 QuerySet的概念 101 5.4.2 常用的QuerySet接口 102 5.4.3 進階接口 104 5.4.4 常用的字段查詢 105 5.4.5 進階查詢 106 5.4.6 總結 107 5.4.7 參考資料 107 5.5 本章總結 107 第6章 開發管理后臺 108 6.1 配置admin頁面 108 6.1.1 創建blog的管理后臺 109 6.1.2 comment的admin配置 115 6.1.3 config的admin配置 115 6.1.4 詳細配置 116 6.1.5 總結 117 6.2 根據需求定制admin 117 6.2.1 定義list頁面 117 6.2.2 編輯頁面的配置 120 6.2.3 自定義靜態資源引入 122 6.2.4 自定義Form 123 6.2.5 在同一頁面編輯關聯數據 123 6.2.6 定制site 124 6.2.7 admin的權限邏輯以及SSO登錄 125 6.2.8 總結 127 6.2.9 參考資料 127 6.3 抽取Admin基類 127 6.3.1 抽象author基類 127 6.3.2 總結 131 6.4 記錄操作日志 131 6.4.1 使用LogEntry 131 6.4.2 查詢某個對象的變更 133 6.4.3 在admin頁面上查看操作日志 133 6.5 本章總結 134 第7章 開發面向用戶的界面 135 7.1 搭建基礎結構與展示文章數據 135 7.1.1 分析URL和頁面數據 135 7.1.2 編寫URL代碼 137 7.1.3 編寫View代碼 138 7.1.4 配置模板 139 7.1.5 模板找不到的錯誤處理 140 7.1.6 編寫正式的View代碼 141 7.1.7 配置模板數據 142 7.1.8 總結 144 7.1.9 參考資料 144 7.2 配置頁面通用數據 144 7.2.1 完善模板信息 144 7.2.2 重構post_list視圖 146 7.2.3 分類信息 147 7.2.4 側邊欄配置 150 7.2.5 總結 150 7.3 封裝側邊欄邏輯 150 7.3.1 調整模型 151 7.3.2 封裝好SideBar 151 7.3.3 總結 153 7.4 整理模板代碼 153 7.4.1 抽象基礎模板 153 7.4.2 解耦硬編碼 155 7.4.3 總結 157 7.5 升級至class-based view 157 7.5.1 函數與類 157 7.5.2 理解class-based view 157 7.5.3 改造代碼 162 7.5.4 總結 166 7.5.5 參考資料 166 7.6 Django的View是如何處理請求的 166 7.6.1 class-based view的處理流程 166 7.6.2 總結 167 7.7 本章總結 167 第8章 引入前端樣式框架Bootstrap 168 8.1 Bootstrap的基本用法 169 8.1.1 介紹 169 8.1.2 容器和柵格系統 169 8.1.3 簡單的頁面布局 171 8.1.4 總結 174 8.1.5 參考資料 174 8.2 基于Bootstrap美化頁面 174 8.2.1 增加themes目錄 175 8.2.2 修改模板 176 8.2.3 總結 180 8.3 配置線上靜態資源 180 8.3.1 內聯CSS和外聯CSS 180 8.3.2 Django中的靜態資源 181 8.3.3 在模板中使用靜態資源 182 8.3.4 總結 183 8.3.5 參考資料 183 8.4 本章總結 183 第9章 完成整個博客系統 184 9.1 增加搜索和作者過濾 184 9.1.1 增加搜索功能 185 9.1.2 增加作者頁面 186 9.1.3 總結 186 9.2 增加友鏈頁面 186 9.3 增加評論模塊 188 9.3.1 評論提交的方式 188 9.3.2 評論模塊通用化改造 188 9.3.3 實現評論 190 9.3.4 抽象出評論模塊組件和Mixin 195 9.3.5 修改最新評論模板 197 9.3.6 總結 197 9.3.7 參考資料 197 9.4 配置Markdown編寫文章的支持 197 9.4.1 Markdown第三方庫 197 9.4.2 評論內容支持 198 9.4.3 文章正文使用Markdown 198 9.4.4 配置代碼高亮 199 9.4.5 總結 201 9.4.6 參考資料 201 9.5 增加訪問統計 201 9.5.1 文章訪問統計分析 202 9.5.2 實現文章訪問統計 203 9.5.3 更加合理的方案 206 9.5.4 總結 206 9.5.5 參考資料 206 9.6 配置RSS和sitemap 206 9.6.1 實現RSS輸出 206 9.6.2 實現sitemap 208 9.6.3 配置RSS和sitemap的urls.py 209 9.6.4 總結 210 9.6.5 參考資料 210 9.7 本章總結 210 第三部分 第三方插件的使用 第10章 使用第三方插件增強管理后臺 214 10.1 xadmin介紹和使用 215 10.1.1 特性 215 10.1.2 安裝最新的xadmin代碼 216 10.1.3 admin替換為xadmin 216 10.1.4 fieldset修改為FieldSet 218 10.1.5 靜態資源Media配置 219 10.1.6 自定義過濾器 219 10.1.7 數據處理上的差異 221 10.1.8 處理inline 221 10.1.9 site title和site footer的處理 222 10.1.10 去掉Django admin自帶的log配置 222 10.1.11 總結 222 10.2 使用django-autocomplete-light優化性能 222 10.2.1 創造1萬個分類 223 10.2.2 django-autocomplete-light介紹 224 10.2.3 引入插件 224 10.2.4 總結 226 10.2.5 參考資料 226 10.3 使用django-ckeditor開發富文本編輯器 226 10.3.1 基礎配置 227 10.3.2 配置圖片 228 10.3.3 上傳圖片配置 228 10.3.4 自定義存儲以及水印 229 10.3.5 Markdown和django-ckeditor共存 231 10.3.6 總結 234 10.3.7 參考資料 234 10.4 本章總結 235 第11章 使用django-rest-framework 236 11.1 接口需求及django-rest-framework介紹 237 11.1.1 快速上手 237 11.1.2 配置API docs 240 11.1.3 總結 242 11.1.4 參考資料 242 11.2 生成我們的RESTful接口 242 11.2.1 區分list和detail 242 11.2.2 實現分頁 243 11.2.3 實現Category接口 244 11.2.4 HyperlinkedModelSerializer的使用 246 11.2.5 其他數據接口的實現 248 11.2.6 總結 248 11.2.7 參考資料 248 11.3 本章總結 249 第四部分 上線前的準備及線上問題排查 第12章 調試和優化 252 12.1 常用的調試和調優手段 252 12.1.1 調試手段 252 12.1.2 調優手段 259 12.1.3 總結 262 12.1.4 參考資料 262 12.2 使用django-debug-toolbar優化系統 262 12.2.1 快速配置 262 12.2.2 解讀數據 263 12.2.3 配置第三方panel 267 12.2.4 line_profiler 269 12.2.5 總結 271 12.2.6 參考資料 271 12.3 使用silk 271 12.3.1 快速配置silk 271 12.3.2 配置profiling 273 12.3.3 總結 273 12.3.4 參考資料 273 12.4 本章總結 274 第13章 配置MySQL和緩存 275 13.1 配置MySQL 275 13.1.1 使用CONN_MAX_AGE優化數據庫連接 276 13.1.2 配置正式的settings 277 13.1.3 總結 277 13.1.4 參考資料 277 13.2 緩存的演化 278 13.2.1 什么是緩存 278 13.2.2 緩存裝飾器 279 13.2.3 增強緩存裝飾器 280 13.2.4 不引入Redis嗎 283 13.2.5 繼續演變我們的緩存邏輯 284 13.2.6 Django中的緩存配置 284 13.2.7 配置Redis緩存 286 13.2.8 應用場景和緩存的粒度 287 13.2.9 總結 287 13.2.10 參考資料 288 13.3 本章總結 288 第14章 上線前的準備 289 14.1 你的代碼如何為用戶提供服務 290 14.1.1 整體結構 290 14.1.2 項目部署方案 291 14.1.3 系統架構 292 14.1.4 總結 292 14.2 標準化打包和自動化部署 292 14.2.1 配置項目的setup.py 293 14.2.2 sdist與bdist_wheel 295 14.2.3 配置內部PyPI服務器 296 14.2.4 自動化部署 298 14.2.5 編寫fabfile配置 299 14.2.6 總結 303 14.2.7 參考資料 304 14.3 在生產環境中運行項目 304 14.3.1 為什么需要使用Gunicorn 304 14.3.2 Gunicorn簡介 305 14.3.3 使用Gunicorn 306 14.3.4 Supervisor介紹 307 14.3.5 自動化部署和supervisord 310 14.3.6 setup.py和requirements.txt 311 14.3.7 配置正式settings 312 14.3.8 靜態文件處理 315 14.3.9 總結 315 14.3.10 參考資料 315 14.4 配置Nginx 315 14.4.1 Nginx介紹 315 14.4.2 為什么使用Nginx 316 14.4.3 配置Nginx 318 14.4.4 總結 320 14.4.5 參考資料 320 14.5 常用的監控方式 320 14.5.1 實時監控 320 14.5.2 統計分析 321 14.5.3 業務監控(埋點統計) 322 14.5.4 總結 322 14.6 試試你的系統能抗多少請求 322 14.6.1 計算系統承載量 322 14.6.2 反推一下 324 14.6.3 壓力測試 324 14.6.4 壓測工具介紹 324 14.6.5 完全模擬真實流量 326 14.6.6 緩存加速訪問 327 14.6.7 總結 328 14.6.8 參考資料 328 14.7 本章總結 328 第15章 升級到Django 2.0 329 15.1 Django 2.x——Python 2時代的逝去 329 15.2 輕松升級到Django 2.0 330 15.2.1 幾個重要的變化 330 15.2.2 第三方庫的升級 331 15.2.3 總結 331 15.3 本章總結 332 第16章 最后總結 333 16.1 技術棧總結 333 16.1.1 技術棧列表 333 16.1.2 總結 334 16.2 后續可實踐方向 334 16.2.1 精于一點 335 16.2.2 持續滾動雪球 335 16.3 Django Web開發技術棧清單 336 16.3.1 Python基礎 336 16.3.2 Django基礎 336 16.3.3 Django進階 338 16.3.4 部署相關 338 16.3.5 MySQL數據庫 339 16.3.6 Redis 339 16.3.7 常用算法 339 16.3.8 總結 339 16.4 最后 340 附錄A 使用Fabric 2.0 341 附錄B 使用uWSGI來啟動Django程序 347 附錄C Sentry安裝和配置 350 附錄D 評論驗證碼功能 354 附錄E 通過signal來解耦代碼 358 附錄F 實現文章置頂的幾種方案 363 附錄G 以騰訊云為例演示部署流程 365 |
序: |
|