作為一個程序猿一定要會做網站。這也不一定吧,貌似是,但是,如果被人問及此事,如果說自己不會,的確羞愧難當呀。所以,本教程要講一講如何做網站。
首先,為自己準備一個服務器。這個要求似乎有點過分,作為一個普通的窮苦聊到的程序員,哪里有銅鈿來購買服務器呢?沒關系,不夠買服務器也能做網站,可以購買云服務空間或者虛擬空間,這個在網上搜搜,很多。如果購買這個的銅鈿也沒有,還可以利用自己的電腦(這總該有了)作為服務服務器。我就是利用一臺裝有 ubuntu 操作系統(tǒng)的個人電腦作為本教程的案例演示服務器。
然后,要在這個服務器上做一些程序配置。一些必備的網絡配置這里就不說了,比如我用的 ubuntu 系統(tǒng),默認情況都有了。如果讀者遇到一些問題,可以搜一下,網上資料多多。另外的配置就是 Python 開發(fā)環(huán)境,這個應該也有了,前面已經在用了。
接下來,要安裝一個框架。本教程中制作網站的案例采用 tornado 框架。
在安裝這個框架之前,先了解一些相關知識。
對框架的認識,由于工作習慣和工作內容的不同,有很大差異,這里姑且截取維基百科中的一種定義,之所以要給出一個定義,無非是讓看官有所了解,但是是否知道這個定義,絲毫不影響后面的工作。
軟件框架(Software framework),通常指的是為了實現(xiàn)某個業(yè)界標準或完成特定基本任務的軟件組件規(guī)范,也指為了實現(xiàn)某個軟件組件規(guī)范時,提供規(guī)范所要求之基礎功能的軟件產品。
框架的功能類似于基礎設施,與具體的軟件應用無關,但是提供并實現(xiàn)最為基礎的軟件架構和體系。軟件開發(fā)者通常依據特定的框架實現(xiàn)更為復雜的商業(yè)運用和業(yè)務邏輯。這樣的軟件應用可以在支持同一種框架的軟件系統(tǒng)中運行。
簡而言之,框架就是制定一套規(guī)范或者規(guī)則(思想),大家(程序員)在該規(guī)范或者規(guī)則(思想)下工作。或者說就是使用別人搭好的舞臺,你來做表演。
我比較喜歡最后一句的解釋,別人搭好舞臺,我來表演。這也就是說,如果在做軟件開發(fā)的時候,能夠減少工作量。就做網站來講,其實需要做的事情很多,但是如果有了開發(fā)框架,很多底層的事情就不需要做了(都有哪些底層的事情呢?讀者能否回答?)。
有高手工程師鄙視框架,認為自己編寫的才是王道。這方面不爭論,框架是開發(fā)中很流行的東西,我還是固執(zhí)地認為用框架來開發(fā),更劃算。
有人說 php(什么是 php,嚴肅的說法,這是另外一種語言,更高雅的說法,是某個活動的漢語拼音簡稱)框架多,我不否認,php 的開發(fā)框架的確很多很多。不過,Python 的 web 開發(fā)框架,也足夠使用了,列舉幾種常見的 web 框架:
說明:以上信息選自:http://blog.jobbole.com/72306/,這篇文章中還有別的框架,由于不是 web 框架,我沒有選摘,有興趣的去閱讀。
本教程中將選擇使用 Tornado 框架。此前有朋友建議我用 Django,首先它是一個好東西。但是,我更愿意用 Tornado,為什么呢?因為......,看下邊或許是理由,或許不是。
Tornado 全稱 Tornado Web Server,是一個用 Python 語言寫成的 Web 服務器兼 Web 應用框架,由 FriendFeed 公司在自己的網站 FriendFeed 中使用,被 Facebook 收購以后框架以開源軟件形式開放給大眾??磥?Tornado 的出身高貴呀,對了,某國可能風聞有 Facebook,但是要一睹其芳容,還要努力。
用哪個框架,一般是要結合項目而定。我之選用 Tornado 的原因,就是看中了它在性能方面的優(yōu)異表現(xiàn)。
Tornado 的性能是相當優(yōu)異的,因為它試圖解決一個被稱之為“C10k”問題,就是處理大于或等于一萬的并發(fā)。一萬呀,這可是不小的量。(關于 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
我在自己電腦中(是我目前使用的服務器),用下面方法安裝,只需要一句話即可:
pip install tornado
這是因為 Tornado 已經列入 PyPI,因此可以通過 pip 或者 easy_install 來安裝。
如果不用這種方式安裝,下面的頁面中有可以供看官下載的最新源碼版本和安裝方式:https://pypi.python.org/pypi/tornado/
此外,在 github 上也有托管,看官可以通過上述頁面進入到 github 看源碼。
我沒有在 windows 操作系統(tǒng)上安裝過這個東西,不過,在官方網站上有一句話,可能在告訴讀者一些信息:
Tornado will also run on Windows, although this configuration is not officially supported and is recommended only for development use.
特別建議,在真正的工程中,網站的服務器還是用 Linux 比較好,你懂得(嗎?)。
除了做好上述準備之外,還要有點技術準備:
我們在后面實例中,不會搞太復雜的界面和 JavaScript(JS) 操作,所以,只需要基本知識即可。
總目錄 | 上節(jié):實戰(zhàn)-引 | 下節(jié):分析 Hello
如果你認為有必要打賞我,請通過支付寶:qiwsir@126.com,不勝感激。