python – 如何用烧瓶加捻?

我希望能够在多个不同的目录上运行扭曲的服务器(exp:/ example1,/ example2..etc),所以我想我会使用flask.这是我到目前为止:

from flask import Flask
from twisted.web.server import Site
from twisted.web.wsgi import WSGIResource
from twisted.internet import reactor
from twisted.web.proxy import ReverseProxyResource
from twisted.web.resource import Resource

app = Flask(__name__)
@app.route('/example1')
def index():
    return 'My Twisted Flask'

flask_site = WSGIResource(reactor, reactor.getThreadPool(), app)

root = Resource()
root.putChild('my_flask', flask_site)

site_example = ReverseProxyResource('www.example.com', 80, ''.encode('utf-8'))
root.putChild('example1', site_example)

reactor.listenTCP(80, Site(root))
reactor.run()

唯一的问题是它不起作用,我不确定我做错了什么.我感谢任何帮助,谢谢!

最佳答案 我的个人意见:在Twisted反应堆中运行Flask并不是一个好主意,因为当Flask处理请求时,Twisted的反应器被阻止.

我想你可能对Klein感兴趣,它提供类似于Flask的API,但是开箱即用的Twisted:http://klein.readthedocs.io/en/latest/

另一种选择:我将把nginx看作Flask应用程序的反向代理而不是Twisted. nginx在一个单独的进程中运行,并且在Flask处理请求时不会被阻止.
https://www.nginx.com/resources/admin-guide/reverse-proxy/

点赞