一尘不染

Flask debug =通过uWSGI时True不起作用

flask

我打电话给app.run(debug=True)我的flask文件。

并且已经将它与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()

阅读 1047

收藏
2020-04-06

共2个答案

一尘不染

不能将Flask的debug选项与一起使用uWSGI,因为它不能在分叉环境中使用。

你会看到502,因为flask / werkzeug没有将任何数据发送到Web服务器,因此nginx将返回502。

你可以使用uWSGI中的–catch-exceptions选项模拟调试器(但请不要在生产环境中使用)

因此,你看到502s的原因就是因为这个。此修复程序是添加–catch-exceptionsuWSGI上执行。

2020-04-06
一尘不染

如果要使werkzeug错误页面与uwsgi一起使用,请尝试使用werkzeug的DebuggedApplication中间件:

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

那应该可以解决问题,但不要忘记仅在开发环境中这样做。

2020-04-06