産品特色
編輯推薦
★一本書掌握Python基礎及高效實踐方法
★全新Python框架版本的應用實踐指南
★作者多年Python項目實踐經驗傾囊分享
★中小示例、項目案例,一個都不能少
★提高開發效率,學得懂、練得會
內容簡介
也許你聽說過全棧工程師,他們善於設計係統架構,精通數據庫建模、通用網絡協議、後端並發處理、前端界麵設計,在學術研究或工程項目上能獨當一麵。通過對Python及其周邊Web框架的學習和實踐,你就可以成為這樣的全能型人纔。本書分為3部分:第1部分是基礎篇,帶領初學者實踐Python開發環境和掌握基本語法,同時對網絡協議、Web客戶端技術、數據庫建模編程等網絡編程基礎深入淺齣地進行學習;第2部分是框架篇,學習當前*流行的Python Web框架,即Django、Tornado、Flask和Twisted,達到對各種Python網絡技術融會貫通的目的;第3部分是實戰篇,分彆對4種框架進行項目實踐,利用其各自的特點開發適用於不同場景的網絡程序。本書內容精練、重點突齣、實例豐富、講解通俗,是廣大網絡應用設計和開發人員不可多得的一本參考書,同時非常適閤大中專院校師生學習和閱讀,也可作為高等院校計算機及相關培訓機構的教材。
作者簡介
劉長龍,復旦大學信息管理學士學位、上海交通大學計算機技術碩士學位,從事計算機軟件研發十餘年。對應用軟件開發有較廣泛深入瞭解,用C++、Python等技術主持負責過電信級實時計費係統、客戶管理係統、智能傢居、物聯網雲平颱的研究和設計開發工作。在不寫作的時候,業餘時間喜歡跑步和遊泳。
目錄
第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
精彩書摘
5.1 網絡框架綜述
本節學習Python網絡框架的概念和開發方法,然後瞭解Web經典架構MVC的原理和作用。
5.1.1 網絡框架及MVC架構
所謂網絡框架是指這樣的一組Python包,它能夠使開發者專注於網站應用業務邏輯的開發,而無須處理網絡應用底層的協議、綫程、進程等方麵。這樣能大大提高開發者的工作效率,同時提高網絡應用程序的質量。
在目前Python語言的幾十個開發框架中,幾乎所有的全棧網絡框架都強製或引導開發者使用MVC架構開發Web應用。所謂全棧網絡框架,是指除瞭封裝網絡和綫程操作,還提供HTTP棧、數據庫讀寫管理、HTML模闆引擎等一係列功能的網絡框架。本書重點講解的Django、Tornado和Flask是全棧網絡框架的典型標杆;而Twisted更專注於網絡底層的高性能封裝而不提供HTML模闆引擎等界麵功能,所以不能稱之為全棧框架。
MVC(Model-View-Controller)模式最早由Trygve Reenskaug在1978年提齣,在20世紀80年代是程序語言Smalltalk的一種內部架構。後來MVC被其他語言所藉鑒,成為瞭軟件工程中的一種軟件架構模式。MVC把Web應用係統分為3個基本部分。
? 模型(Model):用於封裝與應
Python高效開發實戰:Django、Tornado、Flask、Twisted 下載 mobi epub pdf txt 電子書