有許多不同的python框架可用於開發不同的python應用。如果是web應用,可以使用django( )、pylons( )、turbogears( )、tornado( )、zope( )或者plone( )。如果你正在找事件驅動的框架,可以使用twisted( )或者circuits( )等。
框架和外部庫的主要不同在於,應用程式是建立在框架之上的,**對框架進行擴充套件而不是反過來。而外部庫更像是對**的擴充套件,賦予你的**更多額外的能力,而框架會為你的**搭好架子,只需要通過某種方式完善這個架子就行了,儘管這可能是把雙刃劍。使用框架有很多好處,如快速構建原型並開發,但也有一些明顯的缺點,如鎖定(lock-in)問題。因此,在決定使用某個框架前需要把這些都考慮在內。
這裡推薦的為python應用選擇框架的方法很大程度上類似於前面介紹過的外部庫的選擇方法,適用於框架是通過一組python庫來進行分發的情況。有時它們還包含用於建立、執行以及部署應用的工具,但這並不影響你採用的標準。前面已經提到過,在已經寫了大量**之後更換外部庫是十分痛苦的,但更換框架比這還要難受一千倍,因為通常需要完全重寫你的應用程式。舉例說明,前面提及的twisted框架還不能完全支援python 3。如果你基於twisted的程式在幾年之後想要支援python 3,那麼你將非常不幸,除非全部重寫**選用另乙個框架或者有人最終為twisted提供了python 3的公升級支援。
有些框架與其他框架相比更加輕量級。乙個簡單的比較就是,django提供了內建的orm功能,而flask則沒有。乙個框架提供的功能越少,將來遇到問題的越少。然而,框架缺少的每個功能同時也是另乙個需要去解決的問題,要麼自己寫,要麼再千挑萬選去找另乙個能提供這個功能的庫。願意處理哪種場景取決於個人的選擇,但需慎重選擇。當問題出現時從乙個框架公升級至其他框架是極其艱鉅的任務,就算python再強大,對於這類問題也沒有什麼好辦法。
好書推薦《Python高手之路》
這不是一本常規意義上python的入門書。這本書中沒有python關鍵字和for迴圈的使用,也沒有細緻入微的標準庫介紹,而是完全從實戰的角度出發,對構建乙個完整的python應用所需掌握的知識進行了系統而完整的介紹。更為難得的是,本書的作者是開源專案openstack的ptl 專案技術負責人 之一,...
PHP高手之路
2.變數除錯函式 php程式的除錯一直是一件讓人頭疼的事,它既不像vb等高階語言那樣有整合的編譯除錯環境,也不想perl那樣可以在linux或者dos環境下直接執行。其實,我們完全可以通過靈活地使用echo語句來完成對php的除錯工作。下面的幾個函式可以讓你隨時檢視程式中任何變數的型別及其值。fun...
《Python高手之路》 2 6 管理API變化
在構造api時很難一蹴而就。api需要不斷演化 新增 刪除或者修改所提供的功能。在後面的段落中women將討論如何管理公共api的變化。公共api是指將應用程式或庫暴露給終端使用者的api。內部api則有另外的考慮,並且由於它們在內部 也就是說使用者不需要直接操作這些api 因而可以任意處理它們 分...