我是瓶的大风扇-部分是因为它是简单的,部分是因为有很多的扩展 。 然而,瓶是指在WSGI环境中使用,并且WSGI是不是非阻塞的,所以(我相信)它不为某些类型的应用程序扩展以及龙卷风 。
因为每个人都有一个URL调度,这将调用一个函数,都将使用Python文件(在Django你不启动Python文件,但在瓶或龙卷风你这样做)这样做是否有意义有两个单独的部件到您的网站 - 一个部分运行与龙卷风的非阻塞的工作岗位,以及与瓶写的其他部分?
如果这是一个好主意,你会如何去分享瓶中,龙卷风之间饼干/会话? 我会遇到问题,因为瓶会用它自己的系统和龙卷风将使用自己的系统呢?
我想我得到了解决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()
希望这将帮助别人,希望将它们混合:)
基于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