Python 高效開發實戰:Django、Tornado、Flask、Twisted

Python 高效開發實戰:Django、Tornado、Flask、Twisted

作者: 劉長龍
出版社: 電子工業
出版在: 2016-10-01
ISBN-13: 9787121300103
ISBN-10: 7121300109
裝訂格式: 平裝
總頁數: 500 頁





內容描述


<內容簡介>
也許你聽說過全棧工程師,他們善於設計系統架構,精通數據庫建模、通用網絡協議、後端並發處理、前端界面設計,在學術研究或工程項目上能獨當一面。通過對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




相關書籍

Embedded Deep Learning: Algorithms, Architectures and Circuits for Always-on Neural Network Processing

作者 Bert Moons Daniel Bankman Marian Verhelst

2016-10-01

深度學習基礎與工程實踐

作者 郭澤文

2016-10-01

OpenCV 圖像處理入門與實踐

作者 榮嘉祺

2016-10-01