Python高效開發實戰

Python高效開發實戰

《Python高效開發實戰》 全稱《Python高效開發實戰——Django、Tornado、Flask、Twisted》,作者劉長龍,由電子工業出版社2016年10月出版。

內容提要

也許你聽說過全棧工程師,他們善於設計系統架構,精通資料庫建模、通用網路協定、後端並發處理、前端界面設計,在學術研究或工程項目上能獨當一面。通過對Python及其周邊Web框架的學習和實踐,你就可以成為這樣的全能型人才。

《Python高效開發實戰——Django、Tornado、Flask、Twisted》分為3部分:第1部分是基礎篇,帶領初學者實踐Python開發環境和掌握基本語法,同時對網路協定、Web客戶端技術、資料庫建模編程等網路編程基礎深入淺出地進行學習;第2部分是框架篇,學習當前最流行的Python Web框架,即Django、Tornado、Flask和Twisted,達到對各種Python網路技術融會貫通的目的;第3部分是實戰篇,分別對4種框架進行項目實踐,利用其各自的特點開發適用於不同場景的網路程式。

《Python高效開發實戰——Django、Tornado、Flask、Twisted》內容精練、重點突出、實例豐富、講解通俗,是廣大網路套用設計和開發人員不可多得的一本參考書,同時非常適合大中專院校師生學習和閱讀,也可作為高等院校計算機及相關培訓機構的教材。

目錄

第1篇 打好Python基礎

第1章 Python基礎知識 2

1.1 Python綜述 3

1.1.1 了解Python的特性及版本 3

1.1.2 安裝Python 5

1.1.3 使用Python原生編輯器 7

1.1.4 使用Eclipse開發環境 9

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

1.2 數據類型 16

1.2.1 Number類型 17

1.2.2 Sequence類型簇 20

1.2.3 String類型 22

1.2.4 Tuple類型 28

1.2.5 List類型 29

1.2.6 Set類型 30

1.2.7 Dictionary類型 33

1.3 流程控制 35

1.3.1 程式塊與作用域 35

1.3.2 判斷語句 36

1.3.3 循環語句 38

1.3.4 語句嵌套 41

1.4 函式 42

1.4.1 定義與使用 42

1.4.2 變長參數 44

1.4.3 匿名函式 46

1.5 異常 48

1.5.1 處理異常 48

1.5.2 自定義異常 50

1.6 面向對象編程 51

1.6.1 什麼是面向對象 52

1.6.2 類和對象 53

1.6.3 繼承 61

1.7 本章總結 64

第2章 Web編程之網路基礎 65

2.1 TCP/IP網路 66

2.1.1 計算機網路綜述 66

2.1.2 TCP和UDP 70

2.1.3 C/S及B/S架構 73

2.2 HTTP 74

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 HTML 90

3.1.1 HTML介紹 90

3.1.2 HTML基本標籤 93

3.1.3 HTML表單 99

3.2 CSS 102

3.2.1 樣式聲明方式 103

3.2.2 CSS語法 104

3.2.3 基於CSS+DIV的頁面布局 106

3.3 JavaScript 108

3.3.1 在HTML中嵌入JavaScript 108

3.3.2 JavaScript的基本語法 109

3.3.3 DOM及其讀寫 115

3.3.4 window對象 118

3.3.5 HTML事件處理 121

3.4 jQuery 124

3.4.1 使用jQuery 124

3.4.2 選擇器 125

3.4.3 行為 126

3.5 本章總結 130

第4章 資料庫及ORM 131

4.1 資料庫概念 131

4.1.1 Web開發中的資料庫 132

4.1.2 關係資料庫建模 134

4.2 關係資料庫編程 137

4.2.1 常用SQL語句 137

4.2.2 實戰演練:在Python中套用SQL 143

4.3 ORM編程 145

4.3.1 ORM理論基礎 145

4.3.2 Python ORM庫介紹 147

4.3.3 實戰演練:Peewee庫編程 148

4.4 本章總結 151

第2篇 詳解主流Python Web框架

第5章 Python網路框架縱覽 154

5.1 網路框架綜述 155

5.1.1 網路框架及MVC架構 155

5.1.2 4種Python網路框架:Django、Tornado、Flask、Twisted 156

5.2 開發環境準備 157

5.2.1 使用Python虛環境 157

5.2.2 Windows環境下的安裝 159

5.2.3 Linux環境下的安裝 162

5.2.4 easy_install與pip的使用 163

5.3 Web伺服器 165

5.3.1 實戰演練1:WSGI接口 165

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

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

5.4 本章總結 174

第6章 企業級開發框架——Django 175

6.1 Django綜述 176

6.1.1 Django的特點及結構 176

6.1.2 安裝Django 177

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

6.2.1 建立項目 177

6.2.2 建立套用 178

6.2.3 基本視圖 179

6.2.4 內置Web伺服器 181

6.2.5 模型類 182

6.2.6 表單視圖 185

6.2.7 使用管理界面 188

6.3 Django模型層 190

6.3.1 基本操作 190

6.3.2 關係操作 198

6.3.3 面向對象ORM 202

6.4 Django視圖層 205

6.4.1 URL映射 205

6.4.2 視圖函式 211

6.4.3 模板語法 213

6.5 使用Django表單 218

6.5.1 表單綁定狀態 219

6.5.2 表單數據驗證 219

6.5.3 檢查變更欄位 222

6.6 個性化管理員站點 222

6.6.1 模型 222

6.6.2 模板 225

6.6.3 站點 227

6.7 本章總結 229

第7章 高並發處理框架——Tornado 230

7.1 Tornado概述 231

7.1.1 Tornado介紹 231

7.1.2 安裝Tornado 232

7.2 異步及協程基礎 232

7.2.1 同步與異步I/O 233

7.2.2 Python關鍵字yield 234

7.2.3 協程 236

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

7.3.1 網站結構 240

7.3.2 路由解析 241

7.3.3 RequestHandler 242

7.3.4 異步化及協程化 248

7.4 用戶身份驗證框架 250

7.4.1 安全Cookie機制 250

7.4.2 用戶身份認證 252

7.4.3 防止跨站攻擊 254

7.5 HTML5 WebSocket概念及套用 256

7.5.1 WebSocket概念 256

7.5.2 服務端編程 259

7.5.3 客戶端編程 261

7.6 Tornado網站部署 263

7.6.1 調試模式 264

7.6.2 靜態檔案 265

7.6.3 運營期配置 267

7.7 本章總結 269

第8章 支持快速建站的框架——Flask 270

8.1 Flask綜述 271

8.1.1 Flask的特點 271

8.1.2 在Windows中的安裝 272

8.1.3 在Linux及Mac中的安裝 274

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

8.2.1 Hello World程式 276

8.2.2 模板渲染 278

8.2.3 重定向和錯誤處理 280

8.3 路由詳解 281

8.3.1 帶變數的路由 281

8.3.2 HTTP方法綁定 283

8.3.3 路由地址反向生成 284

8.4 使用Context上下文 285

8.4.1 會話上下文 286

8.4.2 套用全局對象 287

8.4.3 請求上下文 289

8.4.4 回調接入點 291

8.5 Jinja2模板編程 292

8.5.1 Jinja2語法 293

8.5.2 使用過濾器 294

8.5.3 流程控制 297

8.5.4 模板繼承 300

8.6 SQLAlchemy資料庫編程 303

8.6.1 SQLAlchemy入門 303

8.6.2 主流資料庫的連線方式 307

8.6.3 查詢條件設定 308

8.6.4 關係操作 311

8.6.5 級聯 315

8.7 WTForm表單編程 321

8.7.1 定義表單 321

8.7.2 顯示錶單 322

8.7.3 獲取表單數據 324

8.8 本章總結 326

第9章 底層自定義協定網路框架——Twisted 327

9.1 Twisted綜述 328

9.1.1 框架概況 328

9.1.2 安裝Twisted及周邊組件 328

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

9.2.1 廣播伺服器 330

9.2.2 廣播客戶端 332

9.3 UDP編程技術 335

9.3.1 實戰演練1:普通UDP 335

9.3.2 實戰演練2:Connected UDP 338

9.3.3 實戰演練3:組播技術 340

9.4 Twisted高級話題 341

9.4.1 延遲調用 341

9.4.2 使用多執行緒 347

9.4.3 安全信道 349

9.5 本章總結 352

第3篇 實戰項目

第10章 實戰1:用Django+PostgreSQL開發移動Twitter 354

10.1 項目概覽 355

10.1.1 項目來源(GitHub) 355

10.1.2 安裝PostgreSQL資料庫並配置Python環境 356

10.1.3 項目結構 358

10.2 頁面框架設計 360

10.2.1 基模板檔案 360

10.2.2 手機大小自適應(jQuery技術) 363

10.2.3 文本國際化 364

10.2.4 網站頁面一覽 367

10.3 用戶註冊及登錄 368

10.3.1 頁面設計 368

10.3.2 模型層 370

10.3.3 視圖設計 371

10.4 手機訊息的發布和瀏覽 376

10.4.1 頁面設計 376

10.4.2 模型層 381

10.4.3 視圖設計 382

10.5 社交朋友圈 385

10.5.1 頁面設計 385

10.5.2 模型層 387

10.5.3 視圖設計 388

10.6 個人資料配置 392

10.6.1 頁面設計 392

10.6.2 圖片上傳(第三方庫PIL) 394

10.7 Web管理站點 397

10.7.1 定義可管理對象 397

10.7.2 配置管理員 398

10.7.3 使用管理站點 398

10.8 本章總結 400

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

11.1 聊天室概覽 402

11.1.1 項目介紹 402

11.1.2 安裝和代碼結構 403

11.2 訊息通信 404

11.2.1 建立網站 404

11.2.2 WebSocket伺服器 407

11.2.3 WebSocket客戶端 408

11.3 聊天功能 411

11.3.1 暱稱 411

11.3.2 訊息來源 413

11.3.3 歷史訊息快取 415

11.4 用戶面板 416

11.4.1 用CSS定義用戶列表 416

11.4.2 伺服器通知 418

11.4.3 回響伺服器動態通知(jQuery動態編程) 419

11.5 本章總結 420

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

12.1 系統概覽 422

12.1.1 來源及功能 422

12.1.2 項目安裝 423

12.1.3 代碼結構 425

12.2 數據模型設計 427

12.2.1 E-R圖設計 427

12.2.2 SQLAlchemy建模 429

12.3 回響式頁面框架設計 435

12.3.1 基模板組件引用 435

12.3.2 回響式導航 439

12.4 新建學校 441

12.4.1 WTForm表單 441

12.4.2 視圖及檔案上傳 443

12.4.3 回響式布局 445

12.5 學校管理 447

12.5.1 查詢視圖 447

12.5.2 分頁模板 450

12.6 Restful接口 453

12.6.1 Restful概念 453

12.6.2 Restless外掛程式 454

12.6.3 開發Restful接口 457

12.7 本章總結 461

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

13.1 項目概況 464

13.1.1 功能定義 464

13.1.2 安裝和測試 465

13.1.3 項目結構 468

13.2 項目設計 469

13.2.1 SQLAlchmey建模 469

13.2.2 TCP接口設計 474

13.3 通信引擎 476

13.3.1 跨平台安全連線埠 477

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 傳送Response 492

13.4.6 錯誤機制 494

13.5 ZeroMQ集群 496

13.5.1 內部接口設計 496

13.5.2 PUB/SUB通信模型編程 498

13.6 本章總結 499

相關詞條

熱門詞條

聯絡我們