-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Django項目開發實戰

( 簡體 字)
作者:黃索遠類別:1. -> 程式設計 -> Python
譯者:
出版社:清華大學出版社Django項目開發實戰 3dWoo書號: 52891
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:6/1/2020
頁數:310
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302552239
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

為什么要寫這本書?

隨著技術的發展,計算機及其他硬件越來越大眾化。在許多IT企業或組織中,人力資
源正成為最寶貴的資源。同時,社會信息化程度的提高,加劇了互聯網行業的競爭,眾多
企業都使用MVP(最小可行產品)模型來開發軟件產品。在這樣的背景下,程序的開發時
間比程序的執行時間更為重要,減少每個項目開發所需的時間和人力可以為企業節省大量
的資金。

Django作為高級的Python Web框架,繼承了Python語言表達力強、開發效率高的優點,
正成為越來越多團隊的技術選擇。Django除了自帶Web開發工具外,還有眾多開箱即用的
第三方Django擴展,使工程師能夠高效率地解決更多的技術問題。程序員要想學習Django
開發,除了需要有扎實的Python語言基礎外,還要學習Web應用相關的知識,如HTTP、緩存、
數據庫等。

另外,DevOps的流行,正在打破開發和運維之間的邊界。在很多IT企業或組織中,
開發人員也需要參與項目的部署和運維。這對開發人員提出了新的要求:不僅需要了解和
編寫業務,而且需要了解高可用的技術架構。當下,云計算已經成為最重要的IT基礎設施,
這種開發加運維的能力正變得越來越重要。

目前圖書市場上關于Django框架應用的圖書不少,但真正從實際應用出發,以用戶價
值為核心,從提出問題到需求提煉的價值探索,再到構建應用、運行應用、檢測應用的快
速驗證這一研發閉環為主旨的圖書卻很少。本書便是以實戰為主旨,以Django為切入點,
以全面的視角介紹了Web應用的技術架構和常見的應用案例,讓讀者全面、深入、透徹地
理解Web開發的各種熱門技術,提高實際開發水平和實戰能力。



本書有何特色?

1. 涵蓋Django 主要功能和主流Python 框架的整合使用
本書涵蓋Django 模型、視圖、中間件、表單、模板、安全等主要功能,以及Django
與Celery、pyredis、django-allauth 等主流框架的整合使用。

2. 對Python Web 開發的各種技術和框架作了原理上的分析
本書從一開始便對Web 開發基礎和Python Web 開發的環境配置做了基本介紹,并對各
種開發技術和主流框架及其整合進行了原理性分析,便于讀者理解書中后面介紹的典型模
塊開發和項目案例。

3. 涵蓋Python Web 應用常見關聯技術棧
本書介紹了數據庫MySQL、Web 服務器Nginx、緩存服務Redis、消息隊列服務
RabbitMQ 的作用和如何在Django 中使用這些技術。另外,本書還介紹了WSGI、uwsgi、
Gunicorn、ZooKeeper、Vagrant 、Docker 和Linux 這些常用于部署和運維Django 應用的工
具和服務。

4. 涵蓋高可用的Web 技術架構的原理
本書介紹了MySQL“主從同步”高可用原理、Redis 的Redis Cluster 和Codis 高可用原理、
NSQ 高可用原理、RabbitMQ 高可用原理,涵蓋了LVS 、Nginx 作為負載均衡器的工作原理,
也介紹了采集日志和監控的常用技術棧。

本書內容及知識體系

第1 篇開發工具及框架概述(第1 章)

本篇介紹了Django 開發環境的配置和HTTP 服務開發的基礎知識,主要包括Web 開
發基礎、配置Python 開發環境、MVC 開發模式等。

第2 篇項目案例實戰(第2

11 章)

本篇介紹了使用Django 來開發一個小型電商網站的案例。開發過程包括需求分析、技
術選型及使用Django 自帶的ORM、視圖、模板、表單、緩存、異步任務、安全、訪問控制、
測試和第三方的開源工具來完成項目需求。

第3 篇高可用技術架構(第12

16 章)

本篇介紹了如何部署、運維和監控以Django 為代表的Web 應用,主要包括Web 服務器、


應用服務器、虛擬化技術、負載均衡技術、服務發現技術、ELK 技術棧和監控系統。

適合閱讀本書的讀者

需要全面學習Python Web 開發技術的人員;

廣大Web 開發程序員;

Python 程序員;

希望提高項目開發水平的人員;

專業培訓機構的學員;

軟件開發項目經理;

運維人員和DevOps 工程師。
閱讀本書的建議


沒有Python 基礎的讀者,建議從第1 章依次閱讀并演練每一個實例。

有一定Django 框架基礎的讀者,可以根據實際情況有重點地選擇閱讀各個模塊和
項目案例。

對于每一個模塊和項目案例,先自己思考一下實現的思路,然后帶著問號去閱讀,
學習效果會更好。
內容簡介:

本書將Django框架的特性和Web開發實戰結合在一起,介紹如何使用Django框架進行Web應用的開發,幫助讀者構建跨平臺的應用程序,節省使用Django框架開發Web的寶貴時間。找到針對這些問題的解決方案,大多數編程難題都會迎刃而解。
本書內容涵蓋表單處理、會話管理、數據庫交互、安全防護及程序的部署維護等運維方面的知識,并且介紹了高可用的Web應用原理。在本書中,讀者可以更加方便地找到各種編程問題的解決方案。
本書實用性強,特別適合使用Python/PHP等進行Web開發的IT從業者和對Web開發感興趣的讀者閱讀。
目錄:

第1篇
開發工具及框架概述
第1章從零開始學Django2
1.1 網站運行原理2
1.1.1 HTTP2
1.1.2 Web發展4
1.1.3 瀏覽器4
1.1.4 MVC模式6
1.2 PythonWeb編程6
1.2.1 通用網關接口7
1.2.2 WSGI協議7
1.2.3 模板引擎8
1.3 快速上手Django8
1.3.1 配置開發環境8
1.3.2 創建項目10
1.3.3 配置說明11
1.3.4 創建應用12
1.3.5 啟動開發服務器13
1.3.6 編寫一個頁面13
1.4 總結14
1.5 練習14
第2篇
項目案例實戰
第2章構建電商網站16
2.1 網站需求分析16
2.1.1 需求16
2.1.2 需求分析17
2.2 網站結構18
2.2.1 分層設計18
2.2.2 技術選型19
2.3 用戶模塊20
2.3.1 Django自帶的用戶模塊20
2.3.2 一對一擴展用戶模型22
2.3.3 繼承AbstractBaseUser25
2.3.4 繼承AbstractUser27
2.4 商品庫模塊27
2.4.1 設計模型28
2.4.2 獲取商品28
2.5 訂單模塊29
2.5.1 購物籃模型29
2.5.2 訂單模型30

?
VIDjango項目開發實戰
2.5.3 獲取訂單數據31
2.6 統計模塊33
2.7 總結34
2.8 練習34
第3章Django和數據庫35
3.1 管理35
3.1.1 配置35
3.1.2 連接池37
3.1.3 更改表結構38
3.2 查詢40
3.2.1 保存對象40
3.2.2 獲取對象41
3.2.3 懶加載和緩存42
3.2.4 聚合查詢43
3.3 事務44
3.3.1 事務管理44
3.3.2 自動提交45
3.3.3 提交后執行操作46
3.4 數據庫并發控制47
3.4.1 沖突47
3.4.2 悲觀鎖48
3.4.3 樂觀鎖50
3.4.4 解決沖突51
3.5 數據庫擴展52
3.5.1 擴展方法52
3.5.2 讀寫分離53
3.5.3 垂直分庫55
3.5.4 水平擴展57
3.5.5 算法分片58
3.5.6 動態分片60
3.5.7 全局ID62
3.6 MySQL實踐63
3.7 總結64
3.8 練習64
第4章視圖65
4.1 配置URL65
4.1.1 URL匹配65
4.1.2 配置嵌套66
4.1.3 反向解析URL67
4.2 視圖函數69
4.2.1 視圖函數69
4.2.2 請求和響應對象70
4.2.3 模板響應對象71
4.3 視圖類72
4.3.1 基本用法72
4.3.2 視圖類的優點73
4.4 文件上傳74
4.4.1 文件表單74
4.4.2 文件存儲75
4.4.3 使用對象存儲系統76
4.5 生成文件79
4.5.1 生成CSV文件79
4.5.2 生成PDF文件80
4.6 中間件81
4.7 總結83
4.8 練習83
第5章模板84
5.1 Web模板系統84
5.2 Django模板系統85
?
目錄VII
5.2.1 配置85
5.2.2 模板語言86
5.3 模板繼承88
5.4 字符轉義90
5.5 自定義標簽和過濾器92
5.5.1 代碼路徑92
5.5.2 編寫自定義過濾器93
5.5.3 自定義標簽93
5.6 總結95
5.7 練習95
第6章表單96
6.1 網頁表單96
6.1.1 表單元素96
6.1.2 提交數據98
6.2 Django表單98
6.2.1 處理流程99
6.2.2 Form類100
6.2.3 ModelForm類102
6.2.4 表單集合103
6.3 AJAX表單105
6.3.1 AJAX技術105
6.3.2 動態表單106
6.4 驗證碼107
6.4.1 表單驗證碼108
6.4.2 AJAX驗證碼109
6.5 總結110
6.6 練習110
第7章Django和緩存111
7.1 Web緩存系統111
7.1.1 Redis緩存111
7.1.2 HTTP緩存114
7.2 Django緩存系統115
7.2.1 配置緩存116
7.2.2 使用緩存117
7.2.3 緩存頁面118
7.2.4 使用HTTP緩存120
7.3 緩存替換策略122
7.4 寫入策略126
7.4.1 Cache-Aside模式126
7.4.2 Write-Through模式128
7.4.3 Write-Back模式129
7.5 高可用緩存系統131
7.5.1 Redis集群131
7.5.2 Codis集群133
7.5.3 緩存穿透和雪崩134
7.6 總結135
7.7 練習135
第8章Django和消息隊列136
8.1 消息隊列136
8.1.1 消息隊列系統136
8.1.2 使用消息隊列138
8.1.3 AMQP139
8.1.4 使用RabbitMQ141
8.2 Django和Celery框架143
8.2.1 任務類143
8.2.2 在Django中使用Celery145
8.2.3 定時任務148
8.2.4 任務路由150
8.2.5 任務工作流151
?
VIIIDjango項目開發實戰
8.2.6 最佳實踐153
8.3 高可用消息隊列154
8.3.1 RabbitMQ高可用154
8.3.2 NSQ系統155
8.4 總結156
8.5 練習156
第9章Django與安全157
9.1 安全中間件157
9.1.1 跨站點腳本防護157
9.1.2 跨站點偽造請求防護158
9.1.3 SQL注入防護161
9.1.4 點擊劫持162
9.1.5 訪問白名單163
9.2 數據安全164
9.2.1 密碼保護164
9.2.2 安全連接166
9.2.3 請求簽名169
9.2.4 重放攻擊171
9.3 總結173
9.4 練習173
第10章Django和訪問控制174
10.1 認證方式174
10.1.1 HTTP基本訪問認證174
10.1.2 訪問令牌176
10.1.3 簽名驗證179
10.1.4 OAuth2驗證181
10.2 會話狀態184
10.3 控制策略186
10.3.1 訪問控制列表186
10.3.2 Django權限系統188
10.3.3 基于身份的訪問控制189
10.4 總結191
10.5 練習192
第11章Django和測試193
11.1 單元測試193
11.2 Django單元測試194
11.2.1 編寫測試用例195
11.2.2 運行測試用例196
11.3 Django測試工具198
11.3.1 測試客戶端198
11.3.2 測試類200
11.4 Mock測試201
11.4.1 Mock對象202
11.4.2 模擬返回值203
11.4.3 副作用205
11.4.4 限定模擬的范圍207
11.5 總結208
11.6 練習209
第3篇
高可用技術架構
第12章Django與部署212
12.1 軟件部署212
12.2 部署Django213
12.2.1 Web服務網關接口214
12.2.2 配置uWSGI服務器215
12.2.3 配置Gunicorn服務器218
?
目錄IX
12.2.4 配置Nginx服務器223
12.3 服務管理224
12.3.1 使用Supervisord管理服務225
12.3.2 使用systemd管理服務226
12.4 Django與虛擬化技術228
12.4.1 使用Vagrant部署Django應用228
12.4.2 使用Docker部署Django應用231
12.4.3 Docker的reap問題234
12.5 總結236
12.6 練習236
第13章Django與負載均衡237
13.1 調度算法237
13.1.1 循環調度算法237
13.1.2 最少連接調度算法239
13.1.3 哈希調度算法240
13.2 網絡冗余241
13.2.1 網卡綁定241
13.2.2 虛擬路由器冗余242
13.3 常用負載均衡器245
13.3.1 負載均衡器的類型245
13.3.2 Linux虛擬服務器246
13.3.3 Nginx反向代理250
13.4 服務發現252
13.4.1 服務注冊中心252
13.4.2 注冊服務254
13.4.3 發現服務256
13.5 總結259
13.6 練習260
第14章Django與日志261
14.1 Python日志模塊261
14.1.1 日志模塊組件261
14.1.2 使用日志模塊263
14.1.3 配置日志模塊266
14.2 Django日志工具267
14.3 日志管理268
14.3.1 Elastic技術棧269
14.3.2 Elasticsearch集群273
14.4 總結275
14.5 練習276
第15章監控277
15.1 監控數據采集277
15.1.1 工作指標277
15.1.2 資源指標278
15.1.3 事件279
15.1.4 收集數據280
15.2 告警281
15.3 使用Prometheus282
15.3.1 Prometheus的工作方式282
15.3.2 抓取Linux系統數據284
15.3.3 抓取Nginx監控數據286
15.3.4 抓取MySQL監控數據288
15.3.5 數據存儲289
15.3.6 告警290
15.4 總結291
15.5 練習291
?
第16章常用工具292
16.1 Git版本控制系統292
16.1.1 Git工作方式292
16.1.2 Gitflow工作流294
16.1.3 Git日志用法296
16.2 Linux常用軟件297
16.2.1 安全Shell297
16.2.2 進程狀態299
16.2.3 系統性能301
16.3 性能剖析303
16.3.1 調用路徑圖304
16.3.2 性能測試306
16.3.3 使用Pyflame生成火焰圖308
16.4 總結310
16.5 練習310
序: