目前主要的Python Web框架有Django 、Flask 、Tornado、web.py等。下面主要对这几个框架做个比对:
Python Web框架 | 优点 | 缺点 | 说明 |
---|---|---|---|
Django | 1.文档,api资源丰富齐全 2.开源,遵循MVC设计模式; 3.框架功能齐全; |
1.框架相对重量 2.系统紧耦合,难以用第三方库代替。 |
Django是目前最流行的Python框架 |
Bottle & Flask | 轻量级框架, 基于Werkzeug WSGI工具箱和Jinja2 模板引擎设计 |
文档相对较少;学习成本较高; | Flask是由 Armin Ronacher开发的 |
web.py | 一个小巧的Web框架; | 初学者,需要手写轮子。 | web.py是轻量级框架; |
Tornado | 类似于Web.py,其拥有异步非阻塞IO的处理方式。并且是一个web服务器 | 文档相对较少;但是代码相对精简; | Tornado是FaceBook的开源软件; |
Tornado 是 Facebook开源技术之一,基于 Apache Licence, Version 2.0 发布。Tornado 和现在的主流 Web 服务器框架的优势在于:它是非阻塞式服务器,而且速度相当快。因此本文选用Tornado作为服务器。
根据官方文档的描述,Python 支持类Unix系统(包括linux和Mac OS X),也支持Windows系统,但是并不是官网推荐的。
根据官网的描述,当前稳定版本Tornado 4.3支持Pyhton 2.6 ,2.7 和3.2以上版本。注意,Pyhon 3.x和Python 2.X是不兼容的。
下面是一些可选包,可用pip安装。
unittest2是一个Tornado的测试工具,Python 2.6 需要安装,Python最新版本不需要;
concurrent.futures是一个线程池工具,Python 2.x需要安装,Python 3已经内置安装;
pycurl是一个下载工具,依赖于Libcrul。
本文主要在win7下,基于Python3 搭建Tornado Web服务器。
(1)pip安装(官方推荐),本文基于这种方式安装。
由于Tornado 已经列入 PyPI ,因此可以通过第三方包管理工具 pip(之前安装pyhton 3的时候已经安装)。
pip install tornado
(2)源码安装
首先去官网下载tornado-4.3.tar.gz (http://www.tornadoweb.org/en/stable/index.html)
然后,对于windwos系统来说。进入cmd命令行,执行下面操作
tar xvzf tornado-4.3.tar.gz
cd tornado-4.3
python setup.py build
python setup.py install
新建一个web项目,新建文件web.py,输入下面代码。
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("测试tornado服务器")
if __name__ == "__main__":
application = tornado.web.Application([
(r"/", MainHandler),
])
application.listen(8888)
tornado.ioloop.IOLoop.current().start()
cmd进入该文件下执行python web.py –port=8888,运行tornado服务器
浏览器输入http://localhost:8888/,测试结果如下: