龙空技术网

一招搞定flask在window下的应用部署

熬心悟道 262

前言:

眼前你们对“flask部署于nginx”都比较着重,我们都需要分析一些“flask部署于nginx”的相关知识。那么小编也在网上搜集了一些对于“flask部署于nginx””的相关知识,希望我们能喜欢,看官们一起来了解一下吧!

前文中已经非常简要介绍了flask架构下,web应用开发的最主要的几个层面的问题,包括参数的传递、orm以及请求的响应。那么在实际的应用中是不是就可以直接拉上战场了呢?实际上是不行的,因为flask自带的服务只能应用于调适环境下,如果是在生产环境性进行使用,其稳定性和并发性还是不能满足要求的,因此这里结合tornado,我们来简单谈一下window环境下的flask应用程序的部署。

什么是tornado

Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架在2009年9月以开源软件形式开放给大众。Tornado具有较为出色的抗负载能力,官方用nginx反向代理的方式部署Tornado和其它Python web应用框架进行对比,结果最大浏览量超过第二名近40%。

tornado的安装

既然Tornado是一个用Python语言写成的Web服务器兼Web应用框架,那么我们可以使用pip进行安装:

pip install tornado
flask服务应用模块的开发

按照前几篇介绍的flask方面的知识,我们写一个简要的flask应用:

# coding=utf-8from flask import *app = Flask(__name__)@app.route('/')def index(): return '<html><body><h1>tornado server发布成功!</h1></body></html>'@app.route('/toLogin')def toLogin(): return '登陆'if __name__ == '__main__': app.run(debug=False, host='127.0.0.1', port=8099)

将上面的文件保存为service.py,下面我们来进行tornado方面的工作。

tornado模块的开发

在service.py的同一路径下,编制server.py,代码如下

# coding=utf-8from tornado.wsgi import WSGIContainerfrom tornado.httpserver import HTTPServerfrom tornado.ioloop import IOLoopfrom service import appif __name__ == '__main__': http_server = HTTPServer(WSGIContainer(app)) http_server.listen(8900) IOLoop.instance().start()

上述代码很简单,将flask和tornado关联在一起工作工作的就是:

http_server = HTTPServer(WSGIContainer(app))

在实际应用中,直接运行server.py即可,通过浏览器访问即可看到效果:

不过需要说明的是,这种flask+tornado的不是形式只能满足基本应用,真正的大型应用,还是建议在linux环境下,使用其他的方式进行部署,同时在部署的同时,再结合以Nginx反向代理技术就可以取得比较好的应用效果。

标签: #flask部署于nginx