【CSDN博客遷移】Python筆記(4)——Python Web框架

一 Python Web框架比較

目前主要的Python Web框架有Django 、Flask 、Tornado、web.py等。下面主要對(duì)這幾個(gè)框架做個(gè)比對(duì):

Python Web框架 優(yōu)點(diǎn) 缺點(diǎn) 說明
Django 1.文檔,api資源豐富齊全
2.開源,遵循MVC設(shè)計(jì)模式;
3.框架功能齊全;
1.框架相對(duì)重量
2.系統(tǒng)緊耦合,難以用第三方庫(kù)代替。
Django是目前最流行的Python框架
Bottle & Flask 輕量級(jí)框架,
基于Werkzeug WSGI工具箱和Jinja2 模板引擎設(shè)計(jì)
文檔相對(duì)較少;學(xué)習(xí)成本較高; Flask是由 Armin Ronacher開發(fā)的
web.py 一個(gè)小巧的Web框架; 初學(xué)者,需要手寫輪子。 web.py是輕量級(jí)框架;
Tornado 類似于Web.py,其擁有異步非阻塞IO的處理方式。并且是一個(gè)web服務(wù)器 文檔相對(duì)較少;但是代碼相對(duì)精簡(jiǎn); Tornado是FaceBook的開源軟件;

二 Tornado Web服務(wù)器

Tornado 是 Facebook開源技術(shù)之一,基于 Apache Licence, Version 2.0 發(fā)布。Tornado 和現(xiàn)在的主流 Web 服務(wù)器框架的優(yōu)勢(shì)在于:它是非阻塞式服務(wù)器,而且速度相當(dāng)快。因此本文選用Tornado作為服務(wù)器。

2.1 適用環(huán)境

2.1.1 操作系統(tǒng)

tornado適用操作系統(tǒng).png

根據(jù)官方文檔的描述,Python 支持類Unix系統(tǒng)(包括linux和Mac OS X),也支持Windows系統(tǒng),但是并不是官網(wǎng)推薦的。

2.1.2 依賴環(huán)境

tornado依賴環(huán)境.png

根據(jù)官網(wǎng)的描述,當(dāng)前穩(wěn)定版本Tornado 4.3支持Pyhton 2.6 ,2.7 和3.2以上版本。注意,Pyhon 3.x和Python 2.X是不兼容的。
下面是一些可選包,可用pip安裝。
unittest2是一個(gè)Tornado的測(cè)試工具,Python 2.6 需要安裝,Python最新版本不需要;
concurrent.futures是一個(gè)線程池工具,Python 2.x需要安裝,Python 3已經(jīng)內(nèi)置安裝;
pycurl是一個(gè)下載工具,依賴于Libcrul。
本文主要在win7下,基于Python3 搭建Tornado Web服務(wù)器。

2.2 下載安裝

(1)pip安裝(官方推薦),本文基于這種方式安裝。
由于Tornado 已經(jīng)列入 PyPI ,因此可以通過第三方包管理工具 pip(之前安裝pyhton 3的時(shí)候已經(jīng)安裝)。

pip install tornado

(2)源碼安裝
首先去官網(wǎng)下載tornado-4.3.tar.gz (http://www.tornadoweb.org/en/stable/index.html
然后,對(duì)于windwos系統(tǒng)來說。進(jìn)入cmd命令行,執(zhí)行下面操作

tar xvzf tornado-4.3.tar.gz
cd tornado-4.3
python setup.py build
python setup.py install

安裝成功如下圖:

tornado安裝成功.png

2.3 測(cè)試

新建一個(gè)web項(xiàng)目,新建文件web.py,輸入下面代碼。

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("測(cè)試tornado服務(wù)器")
if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    application.listen(8888)
    tornado.ioloop.IOLoop.current().start()

cmd進(jìn)入該文件下執(zhí)行python web.py --port=8888,運(yùn)行tornado服務(wù)器

tornado服務(wù)器啟動(dòng).png

瀏覽器輸入http://localhost:8888/,測(cè)試結(jié)果如下:

tornado測(cè)試成功.png

參考文章

  1. web.py 0.3中文官網(wǎng) http://webpy.org/tutorial3.zh-cn.
  2. Tornado英文官網(wǎng) http://www.tornadoweb.org/en/stable/
  3. Django 中文官網(wǎng) http://python.usyiyi.cn/django/index.html
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,832評(píng)論 6 427
  • GitHub 上有一個(gè) Awesome - XXX 系列的資源整理,資源非常豐富,涉及面非常廣。awesome-p...
    若與閱讀 19,319評(píng)論 4 417
  • 環(huán)境管理管理Python版本和環(huán)境的工具。p–非常簡(jiǎn)單的交互式python版本管理工具。pyenv–簡(jiǎn)單的Pyth...
    MrHamster閱讀 3,950評(píng)論 1 61
  • 燈光下顯得那么的悲涼,漫步在安寧的夜晚之中。耳邊傳來摩擦的青春,抬眼望那點(diǎn)綴的時(shí)光,很亮也很美。多年晝夜的經(jīng)營(yíng),卻...
    小灰灰的閱讀 164評(píng)論 0 0
  • R:他們需要對(duì)自己的發(fā)現(xiàn)承擔(dān)道德責(zé)任。比如在本書中,作者介紹了說服的技巧,這種技巧既可以用來做好事,也可以用來做壞...
    心聲樹洞閱讀 221評(píng)論 0 0

友情鏈接更多精彩內(nèi)容