Python開發實戰介紹如何用Python開發科學計算的應用程序,除了介紹數值計算之外,我們還將著重介紹如何制作交互式的2D、3D圖像;如何設計精巧的程序界面;如何和C語言所編寫的高速計算程序結合;如何編寫聲音、圖像處理算法.
《Python開發實戰》來自真正的開發現場,是BePROUD公司眾多極客在真實項目中的經驗總結。
作者從Python的環境搭建講起,介紹了Web應用開發方法、任務管理,以及評審、測試及高效部署、服務器調試等內容,盡可能網羅了Python開發流程中所涉及的方方面面。在這里,Python僅僅是一個載體,很多知識點在非Python下也適用,這也是本書最大的特色所在。
《Python開發實戰》適合有一定基礎的Python開發者,以及使用PHP或Ruby進行網頁開發的讀者閱讀。
Python開發實戰目錄
01開始使用Python
01.01Python環境搭建
01.01.01安裝apt軟件包
01.01.02easy_install與pip
01.01.03安裝virtualenv
01.01.04使用不同版本的Python
01.02Mercurial環境搭建
01.02.01Mercurial的簡介
01.02.02Mercurial的安裝
01.02.03代碼庫的建立
01.02.04文件的操作
01.03編輯器與方便的開發工具
01.03.01編輯器
01.03.02Python開發小貼士
01.04本章小結
02開發Web應用程序
02.01了解Web應用程序
02.01.01什么是Web應用程序
02.01.02Web應用程序與桌面應用程序的不同
02.01.03Web應用程序的機制
02.02Web應用程序開發的事前準備
02.02.01關于Flask
02.02.02Flask的安裝
02.03Web應用程序的開發流程
02.04明確需要開發的目標系統
02.04.01留言簿應用程序的需求
02.04.02明確必要的功能
02.04.03明確頁面的表現形式
02.05頁面設計
02.05.01頁面設計草圖
02.05.02設計HTML和CSS
02.06后臺功能的開發
02.06.01保存評論數據
02.06.02取出保存過的評論數據
02.06.03使用模板引擎顯示頁面
02.06.04準備評論的目標URL地址
02.06.05調整模板輸出
02.07功能驗證
02.08本章小結
第二部分團隊開發的周期和流程
03準備團隊開發環境
03.01在公共服務器上建立用戶、設置權限
03.01.01用戶與用戶組的建立
03.01.02sudoers
03.01.03virtualenv
03.02問題跟蹤系統
03.02.01Trac
03.02.02安裝Trac
03.03版本控制系統
03.04有利于團隊開發的工具
03.04.01Skype
03.04.02DropBox
03.04.03GoogleDocs
03.05本章小結
04編寫開發文檔的準備
04.01編寫項目開發文檔
04.01.01在寫文檔時,我們不想做什么工作
04.01.02愿意在什么樣的條件下編寫文檔
04.02Sphinx的基礎與安裝
04.02.01Sphinx的安裝
04.02.02reStructuredText入門
04.02.03使用Sphinx編寫結構化文檔的流程
04.02.04Sphinx的擴展
04.03引入Sphinx后解決的問題與新的問題
04.03.01采用純文本,可使用一般的編輯器來寫文檔
04.03.02內容與形式分離,不關注文檔形式而專注于內容的編寫
04.03.03不僅僅是PDF,通過一個源可以輸出多種格式
04.03.04將文檔分割成多個文件編輯,進行結構化處理
04.03.05通過Mercurial進行簡單的版本控制
04.03.06將API參考手冊和對應程序協同管理
04.03.07一般文檔可通過Web瀏覽器共享
04.03.08Sphinx引入后仍需探討的問題
04.04文檔集合的創建與利用
04.04.01什么是文檔集合
04.04.02項目中必不可少的文檔列表
04.04.03面向團隊領導、經理
04.04.04面向設計人員
04.04.05面向開發人員
04.04.06面向用戶
04.05本章小結
05問題跟蹤與評審
05.01任務管理與ticket驅動開發
05.01.01開始寫代碼……在這之前還是先創建一個ticket
05.01.02創建和ticket編號一致的分支
05.01.03讓版本發布與分支對應
05.01.04分支的合并
05.01.05整理ticket信息
05.01.06ticket的分割
05.02評審
05.02.01為什么需要評審
05.02.02作為被評審人:代碼評審篇
05.02.03作為被評審人:工作評審篇
05.02.04作為評審人:代碼評審篇
05.02.05作為評審人:工作評審篇
05.03本章小結
06模塊的分割設計與單元測試
06.01模塊分割設計方法
06.01.01功能設計
06.01.02Web應用程序的構成組件
06.01.03組件設計
06.01.04模塊與包
06.02測試
06.02.01測試的種類
06.02.02編寫單元測試
06.02.03從單元測試中去除環境依賴
06.02.04使用WebTest進行功能測試
06.03從測試來改善設計
06.04邁向測試執行的自動化
06.04.01測試環境的自動生成
06.04.02可以反復執行的測試環境
06.05本章小結
07打包與自動建立環境
07.01源代碼打包與發布自動化
07.01.01打包
07.01.02程序包的自動化發布
07.01.03向PyPI注冊程序包
07.01.04向PyPI上傳程序包
07.01.05書寫程序包的使用說明
07.02安裝與環境關聯庫的介紹
07.02.01Distribute
07.02.02pip
07.02.03virtualenv
07.03應用環境自動構建所必備的功能與工具
07.03.01準備獨立的Python環境
07.03.02Python庫的程序包化以及標準安裝
07.03.03鎖定應用環境的程序包版本
07.03.04整個環境可以離線安裝
07.03.05重建環境時可以復用緩存
07.03.06使用編譯好的二進制模塊
07.03.07當PyPI宕機或高峰時,有備用服務器
07.04自動應用環境構建
07.04.01開始
07.04.02構建初始環境
07.04.03包含源代碼的應用環境
07.04.04在部署環境中的離線安裝
07.04.05安裝部署需要二進制編譯的程序包
07.05公司內部共享專用庫
07.05.01在多個項目間共享代碼的方法
07.05.02自動建立非公開程序包的應用環境
07.06本章小結
08使用Mercurial管理源代碼
08.01Mercurial的代碼庫管理與配置
08.01.01在服務器上設置UNIX用戶與用戶組
08.01.02設置umask值
08.01.03創建代碼庫
08.01.04配置hgrc
08.01.05使用配置后的代碼庫
08.01.06使用hgweb作為簡易的中央代碼庫
08.02靈活使用鉤子功能
08.02.01鉤子功能的設置方法
08.02.02使用鉤子腳本
08.02.03鉤子事件
08.02.04鉤子執行的時機
08.02.05編寫鉤子腳本
08.03分支操作
08.04分支間的合并
08.04.01沒有沖突的合并
08.04.02用文本編輯器消除合并沖突
08.04.03合并的模式與沖突的種類
08.04.04使用圖形界面合并的方法
08.05GUI客戶端
08.05.01GUI客戶端的介紹
08.05.02GUI客戶端的優點
08.05.03GUI客戶端的缺點
08.05.04hgwebcommit
08.06考慮實際運用而產生的BPMercurialW/F
08.06.01概要
08.06.02背景
08.06.03代碼庫的構成
08.06.04源代碼提交
08.06.05設計師的提交操作
08.06.06分支的合并
08.06.07集成分支
08.07本章小結
09使用Jenkins持續集成
09.01什么是持續集成
09.01.01關于持續集成
09.01.02關于Jenkins
09.02Jenkins的安裝
09.02.01安裝Java
09.02.02安裝Jenkins主體程序
09.02.03本章用到的Jenkins插件
09.03執行測試代碼
09.03.01簡單測試代碼的示例
09.03.02注冊作業
09.03.03作業執行成功與失敗
09.04測試結果通過報表輸出
09.04.01安裝nose
09.04.02調用nosetests命令
09.04.03為使用nose修改Jenkins配置
09.05展示代碼覆蓋率報告
09.05.01coverage的安裝
09.05.02coverage命令的概述:分為"統計"和"輸出"兩步
09.05.03通過nose執行coverage
09.05.04讀取代碼覆蓋率的報告
09.06執行Django測試
09.06.01Django模塊的安裝
09.06.02Django的安裝
09.06.03樣本代碼
09.06.04Jenkins的創建
09.06.05"構建后處理"部分的配置
09.07通過Jenkins構建文檔
09.07.01Sphinx的安裝
09.07.02配置Jenkins作業的注冊信息
09.07.03Sphinx的構建在出現告警時作業失敗
09.07.04查閱編譯成果
09.07.05使用TaskScannerPlugin管理TODO信息
09.07.06TaskScannerPlugin的配置示例
09.08進一步靈活使用Jenkins
09.08.01便捷的功能
09.08.02進一步的改善
09.09本章小結
第三部分服務的公開
10自動構建和部署環境
10.01安裝與配置具有依賴關系的程序包
10.01.01創建操作用戶
10.01.02列舉必要的程序包
10.01.03封閉環境的安裝
10.01.04應用程序的配置
10.01.05環境驗證
10.02整理部署的操作步驟
10.02.01賦予代碼庫訪問權限
10.02.02克隆源代碼庫
10.02.03部署方法總結
10.03使用Fabric將操作步驟自動化
10.03.01什么是Fabric
10.03.02安裝與環境配置
10.03.03編寫簡單的腳本
10.03.04參考步驟說明書進行自動化
10.03.05驗證執行行為
10.03.06添加注釋
10.04本章小結
11改善應用程序的性能
11.01Web應用程序的性能
11.01.01Web應用遭遇大量請求時會如何
11.01.02高負載時的對策
11.02留言簿應用程序的性能測試
11.02.01什么是應用程序的性能
11.02.02ApacheBench的安裝
11.02.03使用ApacheBench檢測性能
11.03關于gunicorn
11.03.01gunicorn的安裝
11.03.02使用gunicorn運行應用程序
11.04關于nginx
11.04.01nginx的安裝
11.04.02nginx的性能測試
11.05使用nginx和gunicorn共同承載應用程序
11.05.01gunicorn的配置
11.05.02nginx的配置
11.05.03測定nginx+gunicorn組合的性能
11.05.04性能的比較
11.06本章小結
12GoogleAppEngine
12.01關于AppEngine
12.01.01什么是AppEngine
12.01.02AppEngine的優點
12.01.03AppEngine平臺的局限性
12.01.04使用案例
12.02AppEngine的主要功能
12.02.01數據存儲
12.02.02自動擴展與負載分散
12.02.03在AppEngine中的Python運行環境
12.03AppEngine的開發準備工作與步驟確認
12.03.01獲取賬號并開發程序
12.03.02創建SDK
12.03.03開發簡單的應用程序
12.03.04部署
12.04在AppEngine中開發Flask的應用程序
12.04.01使已有的應用程序運行
12.04.02部署并運行
12.04.03管理終端
12.05調整:改善應用程序性能
12.05.01根據Appstats進行性能測試
12.05.02使用多線程來處理
12.06性能調優:減少計費額
12.06.01與計費有關的配置
12.06.02計費表
12.06.03節約實例的數量
12.06.04減少數據存儲的操作
12.07測試
12.07.01在測試代碼內使用API
12.07.02測試的執行
12.07.03在真實服務器上測試
12.08本章小結
第四部分加速開發的技術
13測試是不可分割的一部分
13.01認清測試現狀
13.02在開發的各個階段引入測試工作
13.02.01文檔的測試(文檔評審)
13.02.02編寫測試的方法(輸入與輸出)
13.02.03測試的執行與測試階段的輪換(把什么工作做到什么程度)
13.03本章小結:對測試不要抱有恐懼
14便捷地使用Django
14.01什么是Django
14.01.01Django的安裝
14.01.02Django的架構
14.01.03Django的文檔
14.02讓數據庫的集成更加方便
14.02.01什么是數據庫的集成
14.02.02默認情況下Django能做什么
14.02.03對,就是它,使用South就能夠做到
14.03使用fixturereplacement使測試更加方便
14.03.01什么是測試配置器(fixture)
14.03.02默認測試配置器的不便之處
14.03.03使用factory_boy
14.04使調試更加方便
14.05本章小結
15使用方便的Python模塊
15.01簡化日期計算的模塊
15.01.01日期計算的復雜之處
15.01.02引入dateutil
15.02簡化模型映射的模塊
15.02.01必須進行模型映射的理由
15.02.02映射規則的構造與復用
15.02.03導入bpmappers模塊
15.02.04與Django的聯動
15.02.05編寫JSONAPI
15.03判斷字符的編碼
15.04RSS閱讀訂閱的解析模塊
15.04.01導入feedparser模塊
15.04.02使用feedparser解析RSS閱讀訂閱信息
15.05圖像處理模塊
15.05.01安裝PIL模塊
15.05.02轉換圖像格式
15.05.03調整圖像的尺寸
15.05.04截取圖像的某個部分
15.05.05圖像的過濾處理
15.06數據的加密處理模塊
15.06.01PyCrypto的安裝
15.06.02共同密鑰的加密與解密
15.06.03公開密鑰方式的加密與解密
15.07調用Twitter的API模塊
15.07.01導入tweepy模塊
15.07.02應用程序的登錄域和ConsumerKey的獲取
15.07.03獲得AccessToken
15.07.04調用TwitterAPI
15.07.05開發使用Twitter認證的應用程序
15.08本章小結
附錄A建立VirtualBox環境
附錄B建立操作系統環境
- PC官方版
- 安卓官方手機版
- IOS官方手機版