用瓶和龙卷风在一起吗?用瓶和龙卷风在一起吗?(using Flask and Tornado tog

2019-05-12 20:41发布

我是的大风扇-部分是因为它是简单的,部分是因为有很多的扩展 。 然而,瓶是指在WSGI环境中使用,并且WSGI是不是非阻塞的,所以(我相信)它不为某些类型的应用程序扩展以及龙卷风

因为每个人都有一个URL调度,这将调用一个函数,都将使用Python文件(在Django你不启动Python文件,但在瓶或龙卷风你这样做)这样做是否有意义有两个单独的部件到您的网站 - 一个部分运行与龙卷风的非阻塞的工作岗位,以及与瓶写的其他部分?

如果这是一个好主意,你会如何去分享瓶中,龙卷风之间饼干/会话? 我会遇到问题,因为瓶会用它自己的系统和龙卷风将使用自己的系统呢?

Answer 1:

我想我得到了解决50%,饼干还没有测试过,但现在我可以用龙卷风,和混合旋风+瓶一起加载瓶应用:)

首先这里是flasky.py文件,其中瓶的应用是:

from flask import Flask
app = Flask(__name__)

@app.route('/flask')
def hello_world():
  return 'This comes from Flask ^_^'

然后cyclone.py的文件,该文件将加载瓶应用和龙卷风服务器+一个简单的龙卷风申请,希望也没有所谓的“旋风”模块^ _ ^

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()

希望这将帮助别人,希望将它们混合:)



Answer 2:

基于1和2 ,将合并的和更短的回答是

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":

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

    http_server = HTTPServer(WSGIContainer(app))
    http_server.listen(8000)
    IOLoop.instance().start()

请考虑有关性能已经上提到的警告2 , 3



文章来源: using Flask and Tornado together?