"One does not live by bread alone,but by every word that comes from the mouth of God"
--(MATTHEW4:4)php
不論是python,仍是php,亦或別的作web項目的語言,乃至於作其它非web項目的開發,通常都要用到一個稱之爲何什麼框架的東西。html
開發這對框架的認識,因爲工做習慣和工做內容的不一樣,有很大差別,這裏姑且截取維基百科中的一種定義,之因此要給出一個定義,無非是讓看官有所瞭解,可是是否知道這個定義,絲絕不影響後面的工做。python
軟件框架(Software framework),一般指的是爲了實現某個業界標準或完成特定基本任務的軟件組件規範,也指爲了實現某個軟件組件規範時,提供規範所要求之基礎功能的軟件產品。nginx
框架的功能相似於基礎設施,與具體的軟件應用無關,可是提供並實現最爲基礎的軟件架構和體系。軟件開發者一般依據特定的框架實現更爲複雜的商業運用和業務邏輯。這樣的軟件應用能夠在支持同一種框架的軟件系統中運行。git
簡而言之,框架就是制定一套規範或者規則(思想),你們(程序員)在該規範或者規則(思想)下工做。或者說就是使用別人搭好的舞臺,你來作表演。程序員
我比較喜歡最後一句的解釋,別人搭好舞臺,我來表演。這也就是說,若是我在作web項目的時候,可以省卻不少開發工做。的確是。全部,作web開發,要用一個框架。github
有高手工程師鄙視框架,認爲本身編寫的纔是王道。這方面不爭論,框架是開發中很流行的東西,我仍是執拗地認爲用框架來開發,更划算。web
有人說php(什麼是php,嚴肅的說法,這是另一種語言,更高雅的說法,是某個活動的漢語拼音簡稱)框架多,我不否定,php的開發框架的確不少不少。不過,python的web開發框架,也足夠使用了,列舉幾種常見的web框架:數據庫
說明:以上信息選自:http://blog.jobbole.com/72306/,這篇文章中還有別的框架,因爲不是web框架,我沒有選摘,有興趣的去閱讀。ubuntu
一看到這個標題就知道,本教程中將選擇使用這個框架。此前有朋友建議我用Django,首先它是一個好東西。可是,我更願意用Tornado,爲何呢?由於......,看下邊或許是理由,也或許不是。
Tornado全稱Tornado Web Server,是一個用Python語言寫成的Web服務器兼Web應用框架,由FriendFeed公司在本身的網站FriendFeed中使用,被Facebook收購之後框架以開源軟件形式開放給大衆。看來Tornado的出身高貴呀,對了,若是是在天朝的看官,可能對Facebook有風聞,可是要一睹其芳容,還要努力。或者有人是否是懷疑這個地球上就沒有這個網站呢?哈哈。按照某個地方的網絡,它是存在的。廢話不說,仍是看Tornado的性能,由於選框架,必定要選好性能的,沒準兒何時你也開發高大上的東西了。
Tornado的性能是至關優異的,由於它師徒解決一個被稱之爲「C10k」問題,就是處理大於或等於一萬的併發。一萬呀,這但是不小的量。(關於C10K問題,看官能夠瀏覽:C10k problem)
下表是和一些其餘Web框架與服務器的對比,供看官參考(數據來源:https://developers.facebook.com/blog/post/301)
條件:處理器爲 AMD Opteron, 主頻2.4GHz, 4核
服務 | 部署 | 請求/每秒 |
---|---|---|
Tornado | nginx, 4進程 | 8213 |
Tornado | 1個單線程進程 | 3353 |
Django | Apache/mod_wsgi | 2223 |
web.py | Apache/mod_wsgi | 2066 |
CherryPy | 獨立 | 785 |
看了這個對比表格,還有什麼理由不選擇Tornado呢?
就是它了——Tornado
Tornado的官方網站:http://www.tornadoweb.org
在官網上,有安裝方法,其實,看官也能夠直接在官方上學習。另外,有一箇中文鏡像網站,看官也能夠訪問:http://www.tornadoweb.cn/
我在本身電腦中(ubuntu12.04),用下面方法安裝,只須要一句話便可:
pip install tornado
這是由於Tornado已經列入PyPI,所以能夠經過 pip 或者 easy_install 來安裝。
若是你沒有安裝 libcurl 的話,你須要將其單獨安裝到系統中。請參見下面的安裝依賴一節。
若是不用這種方式安裝,下面的頁面中有能夠供看官下載的最新源碼版本和安裝方式:
https://pypi.python.org/pypi/tornado/
此外,在github上也有託管,看官能夠經過上述頁面進入到github看源碼。
最後要補充一個要點,就是上述下載的Tornado沒法直接安裝在windows上,若是要在windows上安裝,建議使用pypm(這是一個什麼東西,關於這個東西,能夠訪問官方文檔:http://docs.activestate.com/activepython/2.6/pypm.html,說實話,我也沒有用過它,只是看了看文檔罷了。看官若是有使用的,能夠寫一個教程共享之。),以下安裝:
C:\> pypm install tornado