Python 高效開發實戰:Django、Tornado、Flask、Twisted Python高效开发实战:Django、Tornado、Flask、Twisted

劉長龍

買這商品的人也買了...

商品描述

<內容簡介>

也許你聽說過全棧工程師,他們善於設計系統架構,精通數據庫建模、通用網絡協議、後端並發處理、前端界面設計,在學術研究或工程項目上能獨當一面。通過對Python及其周邊Web框架的學習和實踐,你就可以成為這樣的全能型人才。本書分為3部分:第1部分是基礎篇,帶領初學者實踐Python開發環境和掌握基本語法,同時對網絡協議、Web客戶端技術、數據庫建模編程等網絡編程基礎深入淺出地進行學習;第2部分是框架篇,學習當前最流行的Python Web框架,即Django、Tornado、Flask和Twisted,達到對各種Python網絡技術融會貫通的目的;第3部分是實戰篇,分別對4種框架進行項目實踐,利用其各自的特點開發適用於不同場景的網絡程序。本書內容精練、重點突出、實例豐富、講解通俗,是廣大網絡應用設計和開發人員不可多得的一本參考書,同時非常適合大中專院校師生學習和閱讀,也可作為高等院校計算機及相關培訓機構的教材。

<章節目錄>

第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 ER圖設計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

目錄大綱