注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信Python Web開發(fā)實(shí)戰(zhàn)

Python Web開發(fā)實(shí)戰(zhàn)

Python Web開發(fā)實(shí)戰(zhàn)

定 價:¥105.00

作 者: 董偉明
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 計(jì)算機(jī)?網(wǎng)絡(luò) 網(wǎng)頁制作

ISBN: 9787121297335 出版時間: 2016-09-01 包裝:
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  《Python Web開發(fā)實(shí)戰(zhàn)》按照一個Web 產(chǎn)品從無到有、從簡單變復(fù)雜、從基礎(chǔ)到進(jìn)階的過程,多角度、全方位講述了Python Web 開發(fā)。內(nèi)容涉及Web 框架、測試、數(shù)據(jù)庫、消息隊(duì)列、服務(wù)化、持續(xù)集成等,把網(wǎng)站工程的全貌展現(xiàn)在讀者的眼前,從其中可以了解Web 工程從開發(fā)到上線的完整流程。另外,作者對當(dāng)前現(xiàn)在正在流行的技術(shù)或工具,如Flask、Celery、Jupyter、Supervisor、SaltStack、Pandas 等都有較為詳細(xì)的闡述,可作為技術(shù)選型時的參考。對于Web 開發(fā)者、使用Python 語言的運(yùn)維工程師和運(yùn)維開發(fā)工程師、想提高Python 技能的開發(fā)者、想了解Python Web 開發(fā)的其他開發(fā)者,《Python Web開發(fā)實(shí)戰(zhàn)》都適合閱讀。

作者簡介

  董偉明,豆瓣高級產(chǎn)品開發(fā)工程師,主要負(fù)責(zé)豆瓣讀書、電影、音樂、東西等產(chǎn)品線。從2011年開始接觸Python, 從運(yùn)維、運(yùn)維開發(fā)到現(xiàn)在的Web開發(fā),積累了豐富的運(yùn)維和開發(fā)經(jīng)驗(yàn),作者積極參與開源項(xiàng)目,給IPython、pip及Python標(biāo)準(zhǔn)庫等貢獻(xiàn)過代碼。這本書將作者這些年使用Python進(jìn)行Web開發(fā),對各方面知識的理解和積累的經(jīng)驗(yàn)進(jìn)行梳理和總結(jié)。

圖書目錄

第1 章初識Python Web 開發(fā)1
Python Web 開發(fā)介紹1
為什么應(yīng)該選擇Python 作為Web 開發(fā)語言2
選擇Python 2 還是Python 3 2
Web 框架介紹3
主流Web 框架3
小眾的Web 框架5
選擇Web 框架時應(yīng)遵循的原則5
第2 章Web 開發(fā)前的準(zhǔn)備7
搭建一個能運(yùn)行的虛擬機(jī)環(huán)境7
安裝VirtualBox 8
使用Vagrant 安裝8
使用Docker 安裝10
包管理和虛擬環(huán)境13
包管理13
使用pip 替代easy_install 13
distribute、distutils 和setuptools 14
entry_points 15
插件系統(tǒng)16
虛擬環(huán)境17
virtualenv 18
virtualenv 定制化18
virtualenvwrapper 21
virtualenv-burrito 23
autoenv 24
進(jìn)階篇:pip 高級用法25
命令自動補(bǔ)全25
普通用戶安裝25
編輯模式25
使用devapi 作為緩存代理服務(wù)器26
PYPI 的完全鏡像27
第3 章Flask Web 開發(fā) 28
Flask 入門29
安裝Flask 29
從Hello World 開始29
配置管理31
調(diào)試模式32
動態(tài)URL 規(guī)則32
自定義URL 轉(zhuǎn)換器33
HTTP 方法34
唯一URL 35
構(gòu)造URL 36
跳轉(zhuǎn)和重定向36
響應(yīng)38
靜態(tài)文件管理40
即插視圖40
藍(lán)圖43
子域名43
命令行接口44
模板46
Jinja2 46
Mako 52
使用MySQL 60
安裝MySQL 和驅(qū)動61
設(shè)置應(yīng)用賬號和權(quán)限61
用MySQLdb 寫原生語句62
事務(wù)提交和回滾63
ORM 簡介64
使用SQLAlchemy 65
使用ORM 67
數(shù)據(jù)庫關(guān)聯(lián)69
在Flask 中使用SQLAlchemy 71
記錄慢查詢73
理解Context 74
本地線程74
Werkzeug 的Local 75
flask.request 76
使用上下文77
使用LocalProxy 替代g 80
從零開始實(shí)現(xiàn)一個文件托管服務(wù)80
首頁84
重新設(shè)置圖片頁86
下載頁87
預(yù)覽頁87
短鏈接頁88
第4 章Flask 開發(fā)進(jìn)階  89
Flask 的信號機(jī)制89
Blinker 的使用89
Flask 中內(nèi)置的信號90
自定義信號92
信號訂閱的高級用法92
Flask-Login 中的信號93
Flask 的擴(kuò)展95
Flask-Script 95
Flask-DebugToolbar 97
Flask-Migrate 98
Flask-WTF 100
Flask-Security 102
Flask-RESTful 109
Flask-Admin 111
Flask-Assets 115
Werkzeug 的使用118
DebuggedApplication 118
數(shù)據(jù)結(jié)構(gòu)120
功能函數(shù)121
密碼加密122
中間件123
第5 章REST 和Ajax  127
什么是REST 127
RESTful API 設(shè)計(jì)指南128
使用名詞來表示資源128
關(guān)注請求頭129
合理使用請求方法和狀態(tài)碼129
正確地使用REST 130
對輸出的結(jié)果不再包裝131
不要做出錯誤的提示131
使用嵌套對象序列化131
版本132
URI 失效和遷移132
信息過濾132
速度限制133
緩存133
并發(fā)控制134
使用Ajax 135
第6 章網(wǎng)站架構(gòu).  140
Python 應(yīng)用服務(wù)器140
WSGI 協(xié)議141
常見的WSGI 容器141
Web 服務(wù)器Nginx 143
Web 服務(wù)器與應(yīng)用服務(wù)器的區(qū)別143
為什么要選擇Nginx 143
安裝Nginx 144
使用Nginx 部署Flask 應(yīng)用144
緩存系統(tǒng)Memcached 149
Libmc 安裝配置150
使用原生SQL 緩存152
緩存更新策略157
Memcached 使用的經(jīng)驗(yàn)157
鍵值對數(shù)據(jù)庫Redis 157
操作Redis 158
Redis 應(yīng)用場景159
分片和集群管理168
NoSQL 數(shù)據(jù)庫MongoDB 169
為什么使用NoSQL 169
MongoDB 169
使用pymongo 的例子171
使用Mongoengine 的例子174
MongoDB 實(shí)踐經(jīng)驗(yàn)176
大型網(wǎng)站架構(gòu)經(jīng)驗(yàn)182
緩存183
負(fù)載均衡183
高可用184
業(yè)務(wù)拆分184
集群184
第7 章系統(tǒng)管理 186
進(jìn)程管理Supervisor 186
Supervisor 組件187
配置Supervisor 187
使用Supervisor 190
應(yīng)用部署Fabric 193
Fabric 應(yīng)用接口194
使用Fabric 管理Flask 應(yīng)用197
配置管理工具SaltStack 和Ansible 199
SaltStack 200
Ansible 207
使用Psutil 213
使用Sentry 收集錯誤信息215
安裝配置Sentry 216
啟動Sentry 218
創(chuàng)建團(tuán)隊(duì)和項(xiàng)目218
配置SDK 220
使用StatsD、Graphite 等搭建Web 監(jiān)控223
配置Graphite 225
使用StatsD 226
配置Diamond 227
發(fā)布指標(biāo)項(xiàng)227
使用Grafana 228
使用Kenshin 232
第8 章測試和持續(xù)集成 233
使用unittest 和doctest 做測試233
unittest 233
doctest 236
使用py.test 和mock 237
py.test 237
mock 241
持續(xù)集成243
使用Tox 集成248
第9 章消息隊(duì)列和Celery  250
使用Beanstalkd 251
使用Beanstalkc 252
深入理解RabbitMQ 253
AMQP 254
虛擬主機(jī)258
插件系統(tǒng)258
通過Web 和REST API 管理RabbitMQ 259
故障轉(zhuǎn)移262
使用Celery 262
Celery 的架構(gòu)263
Celery 序列化265
安裝配置Celery 265
從一個簡單的例子開始265
指定隊(duì)列268
使用任務(wù)調(diào)度269
任務(wù)綁定、記錄日志和重試270
在Flask 應(yīng)用中使用Celery 271
深入理解Celery 274
Celery 的依賴274
任務(wù)調(diào)用277
信號系統(tǒng)278
Worker 管理279
監(jiān)控和管理Celery 280
子任務(wù)281
進(jìn)階篇:Celery 最佳實(shí)踐283
使用自動擴(kuò)展283
善用遠(yuǎn)程Debug 283
合理安排任務(wù)周期284
合理使用隊(duì)列和優(yōu)先級285
保證業(yè)務(wù)邏輯的事務(wù)性285
關(guān)閉你不想要的功能285
使用閱后即焚模式285
善用Prefetch 模式286
善用工作流286
第10 章服務(wù)化  288
為什么需要服務(wù)化288
RPC 框架289
服務(wù)化帶來的問題290
微服務(wù)架構(gòu)290
使用ri 291
定義IDL 文件292
服務(wù)端實(shí)現(xiàn)294
客戶端實(shí)現(xiàn)297
PIDL——豆瓣的服務(wù)化實(shí)踐301
PIDL 架構(gòu)302
第11 章數(shù)據(jù)處理  305
使用MapReduce 做日志分析305
使用MapReduce 305
使用DPark 309
分布式文件系統(tǒng)MooseFS 309
Mesos 310
配置DPark 環(huán)境311
從WordCount 開始314
PV & UV 統(tǒng)計(jì)316
數(shù)據(jù)報(bào)表320
發(fā)送帶有樣式和附件的郵件320
創(chuàng)建xlsx 文件325
使用Pandas 328
Pandas 入門329
讀取MySQL 數(shù)據(jù)庫332
和Flask 應(yīng)用集成332
第12 章幫助工具.   336
IPython 336
IPython 交互模式338
常用的Magic 函數(shù)338
配置和自定義IPython 341
IPython 的擴(kuò)展系統(tǒng)342
使用IPython 調(diào)試復(fù)雜代碼343
雙進(jìn)程模型344
并行計(jì)算345
Jupyter Notebook 347
Notebook 格式350
Notebook 格式轉(zhuǎn)換和預(yù)覽351
為什么使用RequireJS 352
在Notebook 里使用Echarts 353
富顯示355
自定義JavaScript 和CSS 樣式356
使用nbextension 擴(kuò)展Notebook 358
在Notebook 上使用并行計(jì)算359
調(diào)試和Debug 工具360
了解Linux 服務(wù)器運(yùn)行情況360
性能測試366
Python 程序性能分析369
性能調(diào)優(yōu)實(shí)踐373
進(jìn)階篇:定制基于IPython 的交互解釋環(huán)境374
進(jìn)階篇:豆瓣東西的Jupyter Notebook 實(shí)踐376
第13 章Python 并發(fā)編程383
使用多線程385
使用Gevent 392
使用多進(jìn)程399
使用Future 406
使用asyncio 408
async/await 409
Future 412
使用aiohttp 414
使用隊(duì)列416
第14 章Python 進(jìn)階 418
使用標(biāo)準(zhǔn)庫模塊418
errno 419
subprocess 420
contextlib 421
glob 424
operator 424
functools 426
collections 428
Python 語法最佳實(shí)踐432
命名434
目錄xxix
使用join 連接字符串435
EAFP vs LBYL 435
定義類的__str__/__repr__ 方法436
優(yōu)美的Python 437
從Python 3 移植439
partialmethod 439
singledispatch 440
suppress 442
redirect_stdout/redirect_stderr 443
使用CFFI/Cython 編寫Python 擴(kuò)展444
使用CFFI 444
使用Cython 447
進(jìn)階篇:使用PyObjC 發(fā)送通知451
第15 章Web 開發(fā)項(xiàng)目實(shí)踐455
Web 項(xiàng)目經(jīng)驗(yàn)總結(jié)455
開發(fā)流程455
使用合理的項(xiàng)目結(jié)構(gòu)456
關(guān)注代碼復(fù)雜度457
代碼質(zhì)量保證工具457
Pycodestyle 對中文縮進(jìn)的處理458
Flake8 459
Pylint 460
其他代碼質(zhì)量保證工具461
使用AST 做靜態(tài)檢查461
其他靜態(tài)檢查工具467
編寫Flake8 擴(kuò)展468
代碼評審的意義470
作為被評審者471
作為評審者472
評審的標(biāo)準(zhǔn)473

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號