一起使用Flask和Tornado?

我是Flask的忠实拥护者 -部分是因为它简单,部分是因为它具有很多扩展。但是,Flask是要在WSGI环境中使用的,并且WSGI不是非阻塞的,因此(我相信)对于某些类型的应用程序,它的伸缩性不如Tornado。

由于每个人都有一个将调用函数的URL调度程序,并且两个都将使用Python文件(在Django中,你不启动python文件,但在flask或Tornado中,你可以这样做)这样做对于将网站包含两个独立的部分是有意义的-一部分使用Tornado运行非阻塞作业,另一部分使用Flask编写?

如果这是一个好主意,那么你将如何在Flask和Tornado之间共享cookie /会话?我会遇到问题,因为Flask将使用它自己的系统,而Tornado将使用它自己的系统?

回答:

我想我有50%的解决方案,这些cookie尚未经过测试,但是现在我可以使用Tornado加载Flask应用程序,并将Tornado + Flask混合在一起:)

首先是flasky.py flask应用程序所在的文件:

from flask import Flask

app = Flask(__name__)

@app.route('/flask')

def hello_world():

return 'This comes from Flask ^_^'

然后是Cyclone.py文件,它将加载烧瓶应用程序和tornado服务器以及一个简单的tornado应用程序,希望没有名为“ cyclone”的模块^ _ ^

from tornado.wsgi import WSGIContainer

from tornado.ioloop import IOLoop

from tornado.web import FallbackHandler, RequestHandler, Application

from flasky import app

class MainHandler(RequestHandler):

def get(self):

self.write("This message comes from Tornado ^_^")

tr = WSGIContainer(app)

application = Application([

(r"/tornado", MainHandler),

(r".*", FallbackHandler, dict(fallback=tr)),

])

if __name__ == "__main__":

application.listen(8000)

IOLoop.instance().start()

希望这会对想要混合它们的人有所帮助:)

以上是 一起使用Flask和Tornado? 的全部内容, 来源链接: utcz.com/qa/431167.html

回到顶部