摘要:軟件開發(fā)者通常依據(jù)特定的框架實現(xiàn)更為復(fù)雜的商業(yè)運用和業(yè)務(wù)邏輯。所有,做開發(fā),要用一個框架。的性能是相當(dāng)優(yōu)異的,因為它師徒解決一個被稱之為問題,就是處理大于或等于一萬的并發(fā)。
"One does not live by bread alone,but by every word that comes from the mouth of God"
--(MATTHEW4:4)
不管是python,還是php,亦或別的做web項目的語言,乃至于做其它非web項目的開發(fā),一般都要用到一個稱之為什么什么框架的東西。
框架的基本概念開發(fā)這對框架的認(rèn)識,由于工作習(xí)慣和工作內(nèi)容的不同,有很大差異,這里姑且截取維基百科中的一種定義,之所以要給出一個定義,無非是讓看官有所了解,但是是否知道這個定義,絲毫不影響后面的工作。
軟件框架(Software framework),通常指的是為了實現(xiàn)某個業(yè)界標(biāo)準(zhǔn)或完成特定基本任務(wù)的軟件組件規(guī)范,也指為了實現(xiàn)某個軟件組件規(guī)范時,提供規(guī)范所要求之基礎(chǔ)功能的軟件產(chǎn)品。
框架的功能類似于基礎(chǔ)設(shè)施,與具體的軟件應(yīng)用無關(guān),但是提供并實現(xiàn)最為基礎(chǔ)的軟件架構(gòu)和體系。軟件開發(fā)者通常依據(jù)特定的框架實現(xiàn)更為復(fù)雜的商業(yè)運用和業(yè)務(wù)邏輯。這樣的軟件應(yīng)用可以在支持同一種框架的軟件系統(tǒng)中運行。
簡而言之,框架就是制定一套規(guī)范或者規(guī)則(思想),大家(程序員)在該規(guī)范或者規(guī)則(思想)下工作?;蛘哒f就是使用別人搭好的舞臺,你來做表演。
我比較喜歡最后一句的解釋,別人搭好舞臺,我來表演。這也就是說,如果我在做web項目的時候,能夠省卻很多開發(fā)工作。的確是。所有,做web開發(fā),要用一個框架。
有高手工程師鄙視框架,認(rèn)為自己編寫的才是王道。這方面不爭論,框架是開發(fā)中很流行的東西,我還是固執(zhí)地認(rèn)為用框架來開發(fā),更劃算。
python框架有人說php(什么是php,嚴(yán)肅的說法,這是另外一種語言,更高雅的說法,是某個活動的漢語拼音簡稱)框架多,我不否認(rèn),php的開發(fā)框架的確很多很多。不過,python的web開發(fā)框架,也足夠使用了,列舉幾種常見的web框架:
Django:這是一個被廣泛應(yīng)用的框架,如果看官在網(wǎng)上搜索,會發(fā)現(xiàn)很多公司在招聘的時候就說要會這個,其實這種招聘就暴露了該公司的開發(fā)水平要求不高??蚣苤皇禽o助,真正的程序員,用什么框架,都應(yīng)該是根據(jù)需要而來。當(dāng)然不同框架有不同的特點,需要學(xué)習(xí)一段時間。
Flask:一個用Python編寫的輕量級Web應(yīng)用框架?;赪erkzeug WSGI工具箱和Jinja2模板引擎。
Web2py:是一個為Python語言提供的全功能Web應(yīng)用框架,旨在敏捷快速的開發(fā)Web應(yīng)用,具有快速、安全以及可移植的數(shù)據(jù)庫驅(qū)動的應(yīng)用,兼容Google App Engine(這是google的元計算引擎,后面我會多帶帶介紹)。
Bottle: 微型Python Web框架,遵循WSGI,說微型,是因為它只有一個文件,除Python標(biāo)準(zhǔn)庫外,它不依賴于任何第三方模塊。
Tornado:全稱是Torado Web Server,從名字上看就可知道它可以用作Web服務(wù)器,但同時它也是一個Python Web的開發(fā)框架。最初是在FriendFeed公司的網(wǎng)站上使用,F(xiàn)aceBook收購了之后便開源了出來。
webpy: 輕量級的Python Web框架。webpy的設(shè)計理念力求精簡(Keep it simple and powerful),源碼很簡短,只提供一個框架所必須的東西,不依賴大量的第三方模塊,它沒有URL路由、沒有模板也沒有數(shù)據(jù)庫的訪問。
說明:以上信息選自:http://blog.jobbole.com/72306/,這篇文章中還有別的框架,由于不是web框架,我沒有選摘,有興趣的去閱讀。
Tornado一看到這個標(biāo)題就知道,本教程中將選擇使用這個框架。此前有朋友建議我用Django,首先它是一個好東西。但是,我更愿意用Tornado,為什么呢?因為......,看下邊或許是理由,也或許不是。
Tornado全稱Tornado Web Server,是一個用Python語言寫成的Web服務(wù)器兼Web應(yīng)用框架,由FriendFeed公司在自己的網(wǎng)站FriendFeed中使用,被Facebook收購以后框架以開源軟件形式開放給大眾??磥鞹ornado的出身高貴呀,對了,如果是在天朝的看官,可能對Facebook有風(fēng)聞,但是要一睹其芳容,還要努力?;蛘哂腥耸遣皇菓岩蛇@個地球上就沒有這個網(wǎng)站呢?哈哈。按照某個地方的網(wǎng)絡(luò),它是存在的。廢話不說,還是看Tornado的性能,因為選框架,一定要選好性能的,沒準(zhǔn)兒什么時候你也開發(fā)高大上的東西了。
Tornado的性能是相當(dāng)優(yōu)異的,因為它師徒解決一個被稱之為“C10k”問題,就是處理大于或等于一萬的并發(fā)。一萬呀,這可是不小的量。(關(guān)于C10K問題,看官可以瀏覽:C10k problem)
下表是和一些其他Web框架與服務(wù)器的對比,供看官參考(數(shù)據(jù)來源:https://developers.facebook.com/blog/post/301)
條件:處理器為 AMD Opteron, 主頻2.4GHz, 4核
服務(wù) | 部署 | 請求/每秒 |
---|---|---|
Tornado | nginx, 4進程 | 8213 |
Tornado | 1個單線程進程 | 3353 |
Django | Apache/mod_wsgi | 2223 |
web.py | Apache/mod_wsgi | 2066 |
CherryPy | 獨立 | 785 |
看了這個對比表格,還有什么理由不選擇Tornado呢?
就是它了——Tornado
安裝TornadoTornado的官方網(wǎng)站:http://www.tornadoweb.org
在官網(wǎng)上,有安裝方法,其實,看官也可以直接在官方上學(xué)習(xí)。另外,有一個中文鏡像網(wǎng)站,看官也可以訪問:http://www.tornadoweb.cn/
我在自己電腦中(ubuntu12.04),用下面方法安裝,只需要一句話即可:
pip install tornado
這是因為Tornado已經(jīng)列入PyPI,因此可以通過 pip 或者 easy_install 來安裝。
如果你沒有安裝 libcurl 的話,你需要將其多帶帶安裝到系統(tǒng)中。請參見下面的安裝依賴一節(jié)。
如果不用這種方式安裝,下面的頁面中有可以供看官下載的最新源碼版本和安裝方式:
https://pypi.python.org/pypi/tornado/
此外,在github上也有托管,看官可以通過上述頁面進入到github看源碼。
最后要補充一個要點,就是上述下載的Tornado無法直接安裝在windows上,如果要在windows上安裝,建議使用pypm(這是一個什么東西,關(guān)于這個東西,可以訪問官方文檔:http://docs.activestate.com/activepython/2.6/pypm.html,說實話,我也沒有用過它,只是看了看文檔罷了??垂偃绻惺褂玫?,可以寫一個教程共享之。),如下安裝:
C:> pypm install tornado
首頁|上一講:用python操作數(shù)據(jù)庫 3
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/37427.html
摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲學(xué)習(xí)系列教程(來源于某博主:htt...
摘要:大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。那怎么辦,試著學(xué)一學(xué)唄,學(xué)習(xí)才是程序猿的天性。所以我在想程序猿是不是都需要新知識刺激一下,才能保持興奮的頭腦。有句話說的很對程序猿就像好奇的貓,追著毛球的線頭玩,最后一個毛球在腦袋里攪漿糊。 說說我自己的經(jīng)歷。211大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。 畢業(yè)后進了成都某國字頭研究所,在行業(yè)里摸爬滾打了四年,2018年機緣巧合在家養(yǎng)...
摘要:下面的例子就是一個項目的基本框架。一檢查,發(fā)現(xiàn)一個重要的目錄里面還空著呢,那里面放文件,這個文件里面是請求響應(yīng)的類這個文件的代碼沒有什么增加的內(nèi)容,只是多了三行設(shè)置為的配置,目的是避免漢字亂碼。 just as the Son of Man came not to be served but to serve, and to give his life a ransom for ...
摘要:學(xué)了大半年之后成功轉(zhuǎn)行做前端了。包含大量其他神經(jīng)網(wǎng)絡(luò)庫中的包裝器和抽象,其中最值得注意的是,其中也包含一些機器學(xué)習(xí)的實用模塊。它是輕量級可擴展的神經(jīng)網(wǎng)絡(luò)工具包,同時擁有友好的界面,可供機器學(xué)習(xí)的訓(xùn)練和預(yù)測使用。 題記:大二的時候發(fā)現(xiàn)人生苦短,所以信了拍神,開始學(xué)Python。學(xué)了大半年之后成功轉(zhuǎn)行做前端了。來寫個教程幫助大家入門Python。 Python零基礎(chǔ)入門 零基礎(chǔ)入門就得從最...
閱讀 1028·2019-08-30 15:55
閱讀 619·2019-08-26 13:56
閱讀 2151·2019-08-26 12:23
閱讀 3373·2019-08-26 10:29
閱讀 669·2019-08-26 10:17
閱讀 2937·2019-08-23 16:53
閱讀 773·2019-08-23 15:55
閱讀 2932·2019-08-23 14:25