瓶debug = true可通过uWSGI去时不工作(Flask debug=True does n

2019-07-29 05:03发布

我叫app.run(debug=True)在我的烧瓶文件。

而且我已经部署了uWSGI和nginx的(我跟着这些指示 )

uwsgi -s /tmp/uwsgi.sock -w flask_file_name:app -H /path/to/virtual/env --chmod-socket 666

但是,当我得到一个错误,我没有得到在浏览器或uWSGI日志中的所有调试信息。

有任何想法吗?

flask_file_name.py:

from flask import Flask, make_response, Response, jsonify
import json

app = Flask(__name__)
app.debug = True

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

if __name__ == '__main__':
    app.run()

Answer 1:

据该瓶的邮件列表 ,你不能使用瓶的调试选项uWSGI ,因为它不是在一个分岔的环境中使用。

你看502,因为瓶/ WERKZEUG没有任何数据发送到Web服务器,那么nginx的意愿返回一个502。

您可以使用--catch的例外选项uWSGI仿真调试器(但请不要做它在生产中)

所以,你看到502S之所以会因为这一点。 此修复程序会增加--catch-exceptions ,以uWSGI上执行。



Answer 2:

这个问题是老了,但我会后这个以供将来参考...

如果你想获得WERKZEUG错误页面uwsgi工作,请尝试使用WERKZEUG的DebuggedApplication中间件:

from werkzeug.debug import DebuggedApplication
app.wsgi_app = DebuggedApplication(app.wsgi_app, True)

这应该做的伎俩,但不要忘了这样做只是在开发环境中。



Answer 3:

问题是uwsgi不调用app.run() 它调用app() 因此,你可以这样做:

from flask import Flask
app = Flask(__name__)
app.debug = True


Answer 4:

对我来说,它只是工作后,我结合上面这样的两个答案:

from flask import Flask
app = Flask(__name__)

from werkzeug.debug import DebuggedApplication
app.wsgi_app = DebuggedApplication(app.wsgi_app, True)

app.debug = True


文章来源: Flask debug=True does not work when going through uWSGI