小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

python 中web 框架 django, web.py, Tornado, Flask, Quixote比較,區(qū)別和優(yōu)缺點(diǎn)

 Tehero 2014-12-31

————————————-
django
————————————-
簡(jiǎn)介:

Django 源自一個(gè)在線新聞 Web 站點(diǎn),于 2005 年以開源的形式被釋放出來。
Django 框架的核心組件有:

用于創(chuàng)建模型的對(duì)象關(guān)系映射
為最終用戶設(shè)計(jì)的完美管理界面
一流的 URL 設(shè)計(jì)
設(shè)計(jì)者友好的模板語言
緩存系統(tǒng)
等等

它鼓勵(lì)快速開發(fā),并遵循MVC設(shè)計(jì)。Django遵守 BSD版權(quán),最新發(fā)行版本是Django
1.4,于2012年03月23日發(fā)布.

Django的主要目的是簡(jiǎn)便、快速的開發(fā)數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)站。它強(qiáng)調(diào)代碼復(fù)用,多個(gè)
組件可以很方便的以“插件”形式服務(wù)于整個(gè)框架,Django有許多功能強(qiáng)大的第三方
插件,你甚至可以很方便的開發(fā)出自己的工具包。這使得Django具有很強(qiáng)的可擴(kuò)展
性。它還強(qiáng)調(diào)快速開發(fā)和DRY(Do Not Repeat Yourself)原則。
————————————-
案例:
instagram, pinterest
————————————-

==========================================

————————————-
web.py
————————————-

簡(jiǎn)介:

web.py是一個(gè)非常精巧的web框架,web.py 百分百開源,你能用到你能想到的任
何地方,絕對(duì)毫無限制。
web.py最早是 Aaron Swartz 在 http:// 工作時(shí)搗騰出來的,http://
這個(gè)框架上順利成長(zhǎng)為一家 alexa 排名頭兩百名內(nèi)的網(wǎng)站,輕松搞定了每天幾百萬
的 PV。 另一位發(fā)起人 Steve Huffman 說:“ web.py 其實(shí)是個(gè) 反框架 的框架,它
絕對(duì)不同于你以往對(duì) web 框架的認(rèn)知。”

————————————-
案例:
Frinki, Yandex, Make History, http://Oyster.com
豆瓣
————————————-

==========================================

————————————-
Tornado
————————————-
簡(jiǎn)介:

Tornado 是 FriendFeed 使用的可擴(kuò)展的非阻塞式 web 服務(wù)器及其相關(guān)工具的開
源版本。這個(gè) Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過為了
能有效利用非阻塞式服務(wù)器環(huán)境,這個(gè) Web 框架還包含了一些相關(guān)的有用工具和
優(yōu)化。

Tornado 和現(xiàn)在的主流 Web 服務(wù)器框架(包括大多數(shù) Python 的框架)有著明顯
的區(qū)別:它是非阻塞式服務(wù)器,而且速度相當(dāng)快。得利于其 非阻塞的方式和對(duì)
epoll 的運(yùn)用,Tornado 每秒可以處理數(shù)以千計(jì)的連接,這意味著對(duì)于實(shí)時(shí) Web
服務(wù)來說,Tornado 是一個(gè)理想的 Web 框架。我們開發(fā)這個(gè) Web 服務(wù)器的主要
目的就是為了處理 FriendFeed 的實(shí)時(shí)功能 ——在 FriendFeed 的應(yīng)用里每一個(gè)活
動(dòng)用戶都會(huì)保持著一個(gè)服務(wù)器連接。(關(guān)于如何擴(kuò)容 服務(wù)器,以處理數(shù)以千計(jì)的
客戶端的連接的問題,請(qǐng)參閱 C10K problem。)

案例:
FriendFeed, 知乎

==========================================

————————————-
web2py
————————————-

簡(jiǎn)介:

web2py 是一個(gè)為Python語言提供的全功能Web應(yīng)用框架,只在敏捷快速的開發(fā)Web
應(yīng)用,具有快速、安全以及可移植的數(shù)據(jù)庫驅(qū)動(dòng)的應(yīng)用,兼容 Google App Engine。
web2py編程象Rails編程一樣容易,但如果你既不會(huì)Python也不會(huì)Ruby,web2py
學(xué)起來要比Rails容易多了。
最重要的是,與同等功能的J2EE或PHP相比,web2py所需的代碼量要少,同時(shí)它
強(qiáng)迫你使用一種非常好并且安全的編程習(xí)慣。
web2py阻止目錄遍歷,SQL注入攻擊(SQL injection),跨站腳本執(zhí)行(cross
site scripting),和回復(fù)攻擊弱點(diǎn)(reply attack vulnerability)。
web2py替你對(duì)session,cookie和應(yīng)用錯(cuò)誤進(jìn)行管理。所有應(yīng)用錯(cuò)誤都會(huì)生成
一個(gè)ticket發(fā)送給用戶,并且會(huì)為管理員生成一條日志項(xiàng)。
web2py會(huì)為你編寫所有的SQL。它甚至可以創(chuàng)建表并決定何時(shí)執(zhí)行一個(gè)數(shù)據(jù)庫遷移的動(dòng)作。

==========================================

————————————-
Flask
————————————-
簡(jiǎn)介:

Flask 是一個(gè)微型的 Python 開發(fā)的 Web 框架,示例代碼:

from flask import Flask
app = Flask(__name__)

@app.route(“/”)
def hello():
return “Hello World!”

if __name__ == “__main__”:
app.run()

==========================================

————————————-
Bottle
————————————-

簡(jiǎn)介:

一個(gè)Python Web框架,整個(gè)框架只有一個(gè)文件,幾十K,卻自帶了路徑映射、模
板、簡(jiǎn)單的數(shù)據(jù)庫訪問等web框架組件,確實(shí)是個(gè)可用的框架。初學(xué)web開發(fā)可
以拿來玩玩,其語法簡(jiǎn)單,部署也很方便。

核心特征
路由:使用一個(gè)簡(jiǎn)單但有力的模式語法,映射 URLs 到代碼。
模板:快速的內(nèi)建模板引擎,并且支持 mako、jinja2 和 cheetah 模板。
服務(wù)器:內(nèi)建 HTTP 開發(fā)服務(wù)器,并支持 paste、fapws3、flup、cherrypy
或其它任何有 WSGI 功能的服務(wù)器。
無依賴:所有東西都在一個(gè)單一的文件中,并且不依賴其它任何 Python 標(biāo)準(zhǔn)
庫。

==========================================

————————————-
Quixote
————————————-

簡(jiǎn)介:

在Quixote官方白皮書中已經(jīng)詳細(xì)描述了Quixote的工作模式。Quixote可以使
用Python自代的http_server(主要用于開發(fā)調(diào)試)和與Apache(或lighttpd)配
合使用。

Quixote與Apache配合使用方式如下:
使用CGI,文檔中稱為egular CGI。被認(rèn)為效率最低的一種方式,因?yàn)槊恳粋€(gè)請(qǐng)
求都會(huì)創(chuàng)建一個(gè)新的進(jìn)程。
使用fastCGI,CGI可以運(yùn)行fastCGI一定是可以應(yīng)用的。這也是豆瓣采用的方式。
在Quixote作者的一個(gè)PPT中,他認(rèn)為fastCGI是buggy的。哦:(也不至于啊。我們
正在尋找使用fastCGI的部署經(jīng)驗(yàn)。使用mod_python,將python代碼嵌入到
Apache中。使 用SCGI,這是作者推薦的。使用Apache SCGI module scgi_mod將
遵循SCGI協(xié)議Apache將請(qǐng)求發(fā)送到相應(yīng)的Socket如localhost:3001。而這個(gè)
Socket由本地運(yùn)行的一個(gè) Python程序打開。這個(gè)Python程序?qū)⑻幚碚?qǐng)求,并返回結(jié)果。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多