部署站点

后面“使用Nginx部署Web应用”一节将会介绍使用uWSGI部署Flask站点的方法,这里介绍另外两种便捷的自托管方式。

功能库Gevent提供了一个基于协程的高性能WSGI服务,可以使用pip install gevent完成Gevent的安装,并建立以下文件作为站点的启动文件。

from gevent.wsgi import WSGIServer
from application import app

http_server = WSGIServer(('', 5000), app)
http_server.serve_forever()

功能库Tornado提供了一个基于异步的高性能HTTP服务,其中也提供了WSGI容器,可以用来负载使用Flask编写的Web服务。由于Tornado库功能丰富,这里只提供一个将Flask编写的Web服务托管进WSGI容器的示例。

from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.wsgi import WSGIContainer
from application import app

http_server = HTTPServer(WSGIContainer(app))
http_server.listen(80)

# 启动Tornado的事件循环,配合HTTPServer工作
IOLoop.instance().start()