天天看點

python高效開發實戰--djangotornadoflasktwisted(第2版_Python高效開發實戰——Django、Tornado、Flask、Twisted(第2版)...

上篇 Python基礎第1章 Python基礎知識2

1.1 Python綜述3

1.1.1 了解Python的特性及版本3

1.1.2 安裝Python5

1.1.3 使用Python原生編輯器8

1.1.4 使用Eclipse開發環境9

1.1.5 Python程式設計入門——解決“斐波那契數列”問題14

1.2 資料類型17

1.2.1 Number類型17

1.2.2 Sequence類型簇21

1.2.3 string與bytes23

1.2.4 tuple類型30

1.2.5 list類型31

1.2.6 set類型32

1.2.7 dict類型35

上篇 Python基礎第1章 Python基礎知識2

1.1 Python綜述3

1.1.1 了解Python的特性及版本3

1.1.2 安裝Python5

1.1.3 使用Python原生編輯器8

1.1.4 使用Eclipse開發環境9

1.1.5 Python程式設計入門——解決“斐波那契數列”問題14

1.2 資料類型17

1.2.1 Number類型17

1.2.2 Sequence類型簇21

1.2.3 string與bytes23

1.2.4 tuple類型30

1.2.5 list類型31

1.2.6 set類型32

1.2.7 dict類型35

1.3 流程控制37

1.3.1 程式塊與作用域37

1.3.2 判斷語句38

1.3.3 循環語句40

1.3.4 語句嵌套42

1.4 函數43

1.4.1 定義與使用43

1.4.2 變長參數45

1.4.3 匿名函數47

1.5 異常49

1.5.1 處理異常49

1.5.2 自定義異常51

1.6 面向對象程式設計52

1.6.1 什麼是面向對象52

1.6.2 類和對象54

1.6.3 繼承61

1.7 本章總結64

第2章 Web程式設計之網絡基礎65

2.1 TCP/IP網絡66

2.1.1 計算機網絡綜述66

2.1.2 TCP和UDP70

2.1.3 C/S及B/S架構73

2.2 HTTP74

2.2.1 HTTP流程75

2.2.2 HTTP消息結構76

2.2.3 HTTP請求方法80

2.2.4 基于HTTP的網站開發80

2.3 Socket程式設計82

2.3.1 Socket基礎82

2.3.2 實戰演練:Socket TCP原語83

2.3.3 實戰演練:Socket UDP原語87

2.4 本章總結88

第3章 用戶端的程式設計技術89

3.1 HTML90

3.1.1 HTML介紹90

3.1.2 HTML基本标簽93

3.1.3 HTML表單99

3.2 CSS102

3.2.1 樣式聲明方式103

3.2.2 CSS文法104

3.2.3 基于CSS DIV的頁面布局106

3.3 JavaScript108

3.3.1 在HTML中嵌入JavaScript108

3.3.2 JavaScript的基本文法109

3.3.3 DOM及其讀寫115

3.3.4 window對象118

3.3.5 HTML事件處理121

3.4 jQuery124

3.4.1 使用jQuery124

3.4.2 選擇器125

3.4.3 行為126

3.5 本章總結130

第4章 資料庫及ORM131

4.1 資料庫概念131

4.1.1 Web開發中的資料庫132

4.1.2 關系資料庫模組化134

4.2 關系資料庫程式設計137

4.2.1 常用SQL語句137

4.2.2 實戰演練:在Python中應用SQL143

4.3 ORM程式設計145

4.3.1 ORM理論基礎145

4.3.2 Python ORM庫介紹147

4.3.3 實戰演練:Peewee庫程式設計148

4.4 本章總結151中篇 Python架構第5章 Python網絡架構縱覽154

5.1 網絡架構綜述155

5.1.1 網絡架構及MVC架構155

5.1.2 4種Python網絡架構:Django、Tornado、Flask、Twisted156

5.2 開發環境準備157

5.2.1 easy_install與pip的使用157

5.2.2 使用Python虛環境virtualenv159

5.3 Web伺服器161

5.3.1 實戰演練1:WSGI接口161

5.3.2 實戰演練2:Linux Nginx uWSGI配置162

5.3.3 實戰演練3:建立安全的HTTPS網站168

5.4 本章總結170

第6章 企業級開發架構——Django171

6.1 Django綜述172

6.1.1 Django的特點及結構172

6.1.2 安裝Django 2173

6.2 實戰演練:開發Django站點173

6.2.1 建立項目173

6.2.2 建立應用174

6.2.3 基本視圖175

6.2.4 内置Web伺服器177

6.2.5 模型類178

6.2.6 表單視圖181

6.2.7 使用管理界面184

6.3 Django模型層186

6.3.1 基本操作186

6.3.2 關系操作194

6.3.3 面向對象ORM198

6.4 Django視圖層201

6.4.1 URL映射201

6.4.2 視圖函數207

6.4.3 模闆文法209

6.5 使用Django表單215

6.5.1 表單綁定狀态215

6.5.2 表單資料驗證215

6.5.3 檢查變更字段218

6.6 個性化管理者站點219

6.6.1 模型219

6.6.2 模闆221

6.6.3 站點223

6.7 本章總結225

第7章 高并發處理架構——Tornado226

7.1 Tornado概述227

7.1.1 Tornado介紹227

7.1.2 安裝Tornado228

7.2 異步及協程基礎228

7.2.1 同步與異步I/O228

7.2.2 可疊代(Iterable)與疊代器(Iterator)229

7.2.3 用yield定義生成器(Generator)231

7.2.4 協程233

7.3 實戰演練:開發Tornado網站237

7.3.1 網站結構237

7.3.2 路由解析238

7.3.3 RequestHandler240

7.3.4 異步化及協程化245

7.4 使用者身份驗證架構247

7.4.1 安全Cookie機制247

7.4.2 使用者身份認證249

7.4.3 防止跨站攻擊251

7.5 HTML 5 WebSocket概念及應用253

7.5.1 WebSocket概念253

7.5.2 服務端程式設計256

7.5.3 用戶端程式設計259

7.6 Tornado網站部署261

7.6.1 調試模式261

7.6.2 靜态檔案263

7.6.3 營運期配置265

7.7 本章總結267

第8章 支援快速建站的架構——Flask268

8.1 Flask綜述269

8.1.1 Flask的特點269

8.1.2 安裝Flask、SQLAlchemy和WTForm270

8.2 實戰演練:開發Flask站點271

8.2.1 Hello World程式272

8.2.2 模闆渲染273

8.2.3 重定向和錯誤處理275

8.3 路由詳解276

8.3.1 帶變量的路由276

8.3.2 HTTP方法綁定278

8.3.3 路由位址反向生成279

8.4 使用Context上下文281

8.4.1 會話上下文281

8.4.2 應用全局對象282

8.4.3 請求上下文284

8.4.4 回調接入點286

8.5 Jinja2模闆程式設計288

8.5.1 Jinja2文法288

8.5.2 使用過濾器290

8.5.3 流程控制293

8.5.4 模闆繼承296

8.6 SQLAlchemy資料庫程式設計298

8.6.1 SQLAlchemy入門299

8.6.2 主流資料庫的連接配接方式303

8.6.3 查詢條件設定303

8.6.4 關系操作306

8.6.5 級聯310

8.7 WTForm表單程式設計316

8.7.1 定義表單317

8.7.2 顯示表單318

8.7.3 擷取表單資料319

8.8 本章總結321

第9章 底層自定義協定網絡架構——Twisted322

9.1 Twisted綜述323

9.1.1 架構概況323

9.1.2 安裝Twisted及周邊元件323

9.2 實戰演練:開發TCP廣播系統325

9.2.1 廣播伺服器325

9.2.2 廣播用戶端327

9.3 UDP程式設計技術330

9.3.1 實戰演練1:普通UDP330

9.3.2 實戰演練2:Connected UDP333

9.3.3 實戰演練3:多點傳播技術335

9.4 Twisted進階話題337

9.4.1 延遲調用337

9.4.2 使用多線程343

9.4.3 安全信道345

9.5 本章總結348

第10章 實戰1:用Django PostgreSQL開發移動Twitter352

10.1 項目概覽353

10.1.1 項目來源(GitHub)353

10.1.2 安裝PostgreSQL資料庫并配置Python環境354

10.1.3 項目結構356

10.2 頁面架構設計358

10.2.1 基模闆檔案359

10.2.2 手機大小自适應(jQuery技術)361

10.2.3 文本國際化362

10.2.4 網站頁面一覽365

10.3 使用者注冊及登入366

10.3.1 頁面設計366

10.3.2 模型層368

10.3.3 視圖設計369

10.4 手機消息的釋出和浏覽374

10.4.1 頁面設計374

10.4.2 模型層379

10.4.3 視圖設計380

10.5 社交朋友圈383

10.5.1 頁面設計383

10.5.2 模型層385

10.5.3 視圖設計386

10.6 個人資料配置389

10.6.1 頁面設計390

10.6.2 圖檔上傳(第三方庫PIL)391

10.7 Web管理站點395

10.7.1 定義可管理對象395

10.7.2 配置管理者396

10.7.3 使用管理站點396

10.8 本章總結398

第11章 實戰2:用Tornado jQuery開發WebSocket聊天室399

11.1 聊天室概覽400

11.1.1 項目介紹400

11.1.2 安裝和代碼結構401

11.2 消息通信402

11.2.1 建立網站402

11.2.2 WebSocket伺服器405

11.2.3 WebSocket用戶端406

11.3 聊天功能409

11.3.1 昵稱409

11.3.2 消息來源411

11.3.3 曆史消息緩存413

11.4 使用者面闆414

11.4.1 用CSS定義使用者清單414

11.4.2 伺服器通知416

11.4.3 響應伺服器動态通知(jQuery動态程式設計)417

11.5 本章總結418

第12章 實戰3:用Flask Bootstrap Restful開發學校管理系統419

12.1 系統概覽420

12.1.1 項目來源及功能420

12.1.2 項目安裝421

12.1.3 代碼結構424

12.2 資料模型設計425

12.2.1 E-R圖設計426

12.2.2 SQLAlchemy模組化428

12.3 響應式頁面架構設計434

12.3.1 基模闆元件引用434

12.3.2 響應式導航437

12.4 建立學校440

12.4.1 WTForm表單440

12.4.2 視圖及檔案上傳442

12.4.3 響應式布局443

12.5 學校管理446

12.5.1 查詢視圖446

12.5.2 分頁模闆449

12.6 Restful接口451

12.6.1 Restful概念451

12.6.2 Restless插件452

12.6.3 開發Restful接口456

12.7 本章總結461

第13章 實戰4:用Twisted SQLAlchemy ZeroMQ開發跨平台物聯網消息網關462

13.1 項目概況463

13.1.1 功能定義463

13.1.2 安裝和測試464

13.1.3 項目結構467

13.2 項目設計469

13.2.1 SQLAlchmey模組化469

13.2.2 TCP接口設計473

13.3 通信引擎476

13.3.1 跨平台安全端口476

13.3.2 管理連接配接478

13.3.3 收發資料479

13.3.4 TCP流式分包482

13.3.5 異步執行484

13.4 協定程式設計486

13.4.1 執行指令486

13.4.2 struct解析位元組流489

13.4.3 序列号生成490

13.4.4 連接配接保持491

13.4.5 發送Response492

13.4.6 錯誤機制494

13.5 ZeroMQ叢集496