如何更好更快的進(jìn)行Python編寫(xiě)?
它也是由Python編寫(xiě)而成的Web Server和Web Application應(yīng)用開(kāi)發(fā)框架,讓Python編寫(xiě)在國(guó)內(nèi)發(fā)展得更快,得到更廣泛的應(yīng)用,作為程序員的我們是不是也該出一分力呢?
Twisted是一個(gè)純Python的網(wǎng)絡(luò)應(yīng)用框架。由于Twisted社區(qū)十分的活躍,你可以從網(wǎng)站上得到充分的文檔,讓你輕松上手;Twisted是開(kāi)源的,你可以為框架增加任何的特性,只要你有好的Idea;
由于Twisted是完全由Python編寫(xiě)的,本身會(huì)十分安全和穩(wěn)定。這都得益于Python本身的設(shè)計(jì)和容錯(cuò)機(jī)制;還有最最重要的一點(diǎn),就是你能夠很快的開(kāi)發(fā)出遵循自定義協(xié)議的服務(wù)器。這是不是很帥呢?大家先看以下代碼:
- from twisted.internet.protocol import Protocol, Factory
- from twisted.internet import reactor
- class Echo(Protocol):
- def dataReceived(self, data):
- self.transport.write(data)
- if data == 'q':
- self.transport.loseConnection()
- def main():
- factory = Factory()
- factory.protocol = Echo
- reactor.listenTCP(8000,factory)
- reactor.run()
- if __name__ == '__main__':
- main()
這里定義了一個(gè)很簡(jiǎn)單的Echo協(xié)議:就是將client端的輸入再次回顯而已。運(yùn)行該腳本,然后利用telnet程序去連接本機(jī)的8000端口,連接上之后,你可以嘗試著敲入幾個(gè)字符,你會(huì)發(fā)現(xiàn)屏幕上會(huì)將你敲入的字符顯示了兩遍。
不需要驚訝,因?yàn)橐槐槭怯捎阪I盤(pán)輸入產(chǎn)生的屏幕輸出,而另一遍則是由服務(wù)器將接受到的數(shù)據(jù)發(fā)送回client而產(chǎn)生的輸出。如果你按下'q',就能夠斷開(kāi)與服務(wù)器的連接。雖然以上實(shí)現(xiàn)的功能很簡(jiǎn)單,但是我們確實(shí)建立了一個(gè)屬于自己的服務(wù)器,一個(gè)按照自己定義的協(xié)議提供服務(wù)的server。開(kāi)發(fā)的速度是不是很快呢?
正如Twisted網(wǎng)站上說(shuō)的Develop servers at lightning speed(閃電般的速度)。只要將具體的協(xié)議做進(jìn)一步的擴(kuò)展,就能建立起功能強(qiáng)大的服務(wù)器了。在這里所提到的Twisted的功能僅僅是這座寶藏的冰山一角,在這里就不進(jìn)一步去闡述了。有興趣的朋友可以從Twisted的網(wǎng)站得到更多的信息。
除了上篇和以上講述到的兩個(gè)強(qiáng)大的基于Python類(lèi)庫(kù)之外,還有IronPython,一個(gè)在.NET上的Python實(shí)現(xiàn),不僅可以把Python程序編譯成IL并跟CLR良好的協(xié)作,其執(zhí)行速度還要比Python的C語(yǔ)言實(shí)現(xiàn)要快許多;
還有Zope也不得不提一下。它也是由Python編寫(xiě)而成的Web Server和Web Application應(yīng)用開(kāi)發(fā)框架,其中用到了不少新鮮的東西哦,譬如面向?qū)ο髷?shù)據(jù)庫(kù)以及CMF(Content Management Framework)等。還有Plone,一個(gè)十分出色的CMS(Content Management System),想看看以它進(jìn)行內(nèi)容管理的網(wǎng)站嗎?看看這里很cool的網(wǎng)站列表吧。你會(huì)發(fā)現(xiàn)夏威夷政府,還會(huì)發(fā)現(xiàn)太空總署。
除了Plone,還有PyGame,還有高居SourceForge下載排行榜前列的BitTorrent,還有……趕緊去瞧瞧你身邊的寶藏吧。如果你仍然對(duì)于Python持懷疑的態(tài)度,最后再聽(tīng)聽(tīng)牛人Eric Raymond的意見(jiàn)吧:Why Python? 讓Python編寫(xiě)在國(guó)內(nèi)發(fā)展得更快,得到更廣泛的應(yīng)用,作為程序員的我們是不是也該出一分力呢?畢竟Python讓我們的編碼變得更加有效,也更加有趣。
【編輯推薦】