如果你只把本書視為Python的開發書,那就可惜了。
作者是中國最大社群豆瓣的系統架構師,看完本書,不只是學Python的Web開發,更是從頭到尾自己開發、維護、營運、測試一個完整網頁的百科大全,涵蓋:
.最完整的Python Web Framework Django和Flask
.完整的Python語言說明
.最好用的IPython(Jupyter)
.最新的NoSQL資料庫應用(MongoDB、Redis、Memcached)
.一些最好用的系統工具, SaltStack以及Ansible
.系統監測工具StatsD, Graphite
.服務化的Thrift
.還有和Python配合的Ajax以及Javascript
適用:Web 開發者、使用Python的運行維護工程師和開發工程師、想了解Python Web 開發的其他開發者。
作者簡介:
董偉明
豆瓣高級產品開發工程師,主要負責豆瓣讀書、電影、音樂、東西等產品線。從2011年開始接觸Python, 從運維、運維開發到現在的Web開發,累積豐富的運維和開發經驗,他積極參與開源專案,給IPython、pip及Python標準庫等貢獻過代碼。
本書是多年使用Python進行Web開發,對各方面知識理解和積累經驗的梳理和總結。
個人微博:http://www.dongwm.com
GitHub位址:https://github.com/dongweiming
推薦序
推薦序
雖然資訊業的範式已經走入大數據時代,新入門的程式工程師早就準備跳過APP開發而走向新的里程碑,但一路從電腦軟體開發走過來的資深或工程師卻不一定這麼認為。網頁的開發仍然在程式開發中佔有一席之地,而且是非常重要的地位。
原因無他,不管是手機APP或電腦,網頁仍然是最常見的資訊提供者,沒有以HTTP為主的WEB應用,一切終端的應用將淪為空談,而隨著雲端及大數據時代儼然降臨,對Web Server的需求只會增加不會減少。
開發一個網路應用程式,大家想到的就是微軟系的.NET及PHP。這剛好代表了天平的兩個極端;一個是以框架(Framework)為主的結構式開發,另一個則是自由派無拘無束的專屬網頁語言,程式設計新手,通常會選擇PHP,但我敢大膽的說,如果你選擇了這兩者,就真的走錯路了。
微軟架構的複雜及笨重性自然不會是快速輕巧開發Web應用程式首選,而PHP是一個專屬網頁語言,你無法把他用在其它地方,只能開發網頁。此外PHP是一個20年前的產品,雖然不斷進步卻舉步維艱,最重要的一點,就是一個不是原生支援MVC架構的語言,會讓你在路由、整合、規範、偵錯、協錯、測試、疊代上出現極大的問題。我這邊假設大家和我一樣不是電腦天才,那麼PHP絕對不是最好的選擇。
Python作為一個通用語言,簡單好學直覺,是所有Linux的預設草稿語言,此外大數據的流行,學習Python絕對是可以讓你長長久久的好工具。如果再加上支援MVC的Web Framework,你可以在短短的幾天之內,開發出大型、結構完整、符合標準的Web應用程式。
本書羅列出幾個最有名的Python Web Frameworks,最常見的Django、小而美的Flask等,都是符合MVC的好用框架,學習Python本身已經很容易了,如果再加上這些武器,兩三天開發出一個大型的網站真的不是夢想。
隨著框架的流行,Python的Framework已慢慢向Rails或Express.js的普遍性靠攏,如果你已經是Python高手,那麼本書的確可以帶給你一些滿滿的大平台,如果你還是新手,也可以利用本書同時學語言本身及框架,時代不斷進步,如果你還活在傳統的PHP思維中,而不向Rails或Django的未來前進,被時代洪流所淘汰就不會是危言聳聽了。
推薦序
雖然資訊業的範式已經走入大數據時代,新入門的程式工程師早就準備跳過APP開發而走向新的里程碑,但一路從電腦軟體開發走過來的資深或工程師卻不一定這麼認為。網頁的開發仍然在程式開發中佔有一席之地,而且是非常重要的地位。
原因無他,不管是手機APP或電腦,網頁仍然是最常見的資訊提供者,沒有以HTTP為主的WEB應用,一切終端的應用將淪為空談,而隨著雲端及大數據時代儼然降臨,對Web Server的需求只會增加不會減少。
開發一個網路應用程式,大家想到的就是微軟系的.NET及PHP。這剛好代表了天平的兩個極端;一個是以框架(F...
目錄
Chapter 01 初識Python Web 開發
Python Web 開發介紹
Web 架構介紹
Chapter 02 Web 開發前的準備
架設一個能執行的虛擬機器環境
套件管理和虛擬環境
進階篇:pip 進階用法
Chapter 03 Flask Web 開發
Flask 入門
範本
使用MySQL
了解Context
從零開始實現一個檔案託管服務
Chapter 04 Flask 開發進階
Flask 的訊號機制
Flask 的擴充
Werkzeug 的使用
Chapter 05 REST 和Ajax
什麼是REST
RESTful API 設計指南
使用Ajax
Chapter 06 網站架構
Python 應用伺服器
Web 伺服器Nginx
快取系統Memcached
鍵值對資料庫Redis
NoSQL 資料庫MongoDB
大型網站架構經驗
Chapter 07 系統管理
處理程序管理Supervisor
應用部署Fabric
設定管理工具SaltStack 和Ansible
使用Psutil
使用Sentry 收集錯誤訊息
使用StatsD、Graphite 等架設Web 監控
Chapter 08 測試和持續整合
使用unittest 和doctest 做測試
使用py.test 和mock
持續整合
Chapter 09 訊息佇列和Celery
使用Beanstalkd
深入了解RabbitMQ
使用Celery
深入了解Celery
進階篇:Celery 最佳做法
Chapter 10 服務化
為什麼需要服務化
使用Thrift
PIDL——豆瓣的服務化實作
Chapter 11 資料處理
使用MapReduce 做記錄檔分析
使用DPark
資料總表
使用Pandas
Chapter 12 幫助工具
IPython
Jupyter Notebook
偵錯和Debug 工具
進階篇:訂製以IPython 為基礎的互動解釋環境
進階篇:豆瓣東西的Jupyter Notebook 實作
Chapter 13 Python 平行處理程式設計
使用多執行緒
使用Gevent
使用多處理程序
使用Future
使用asyncio
Chapter 14 Python 進階
使用標準函數庫模組
Python 語法最佳實作
從Python 3 移植
使用CFFI/Cython 撰寫Python 擴充
進階篇:使用PyObjC 發送通知
Chapter 15 Web 開發專案實作
Web 專案經驗歸納
程式品質保障工具
程式審核的意義
Chapter 01 初識Python Web 開發
Python Web 開發介紹
Web 架構介紹
Chapter 02 Web 開發前的準備
架設一個能執行的虛擬機器環境
套件管理和虛擬環境
進階篇:pip 進階用法
Chapter 03 Flask Web 開發
Flask 入門
範本
使用MySQL
了解Context
從零開始實現一個檔案託管服務
Chapter 04 Flask 開發進階
Flask 的訊號機制
Flask 的擴充
Werkzeug 的使用
Chapter 05 REST 和Ajax
什麼是REST
RESTful API 設計指南
使用Ajax
Chapter 06 網站架構
Python 應用伺服器
Web 伺服器Nginx
快取系統Memcached
鍵值...