我叫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()
据该瓶的邮件列表 ,你不能使用瓶的调试选项uWSGI
,因为它不是在一个分岔的环境中使用。
你看502,因为瓶/ WERKZEUG没有任何数据发送到Web服务器,那么nginx的意愿返回一个502。
您可以使用--catch的例外选项uWSGI仿真调试器(但请不要做它在生产中)
所以,你看到502S之所以会因为这一点。 此修复程序会增加--catch-exceptions
,以uWSGI
上执行。
这个问题是老了,但我会后这个以供将来参考...
如果你想获得WERKZEUG错误页面uwsgi工作,请尝试使用WERKZEUG的DebuggedApplication
中间件:
from werkzeug.debug import DebuggedApplication
app.wsgi_app = DebuggedApplication(app.wsgi_app, True)
这应该做的伎俩,但不要忘了这样做只是在开发环境中。
问题是uwsgi
不调用app.run()
它调用app()
因此,你可以这样做:
from flask import Flask
app = Flask(__name__)
app.debug = True
对我来说,它只是工作后,我结合上面这样的两个答案:
from flask import Flask
app = Flask(__name__)
from werkzeug.debug import DebuggedApplication
app.wsgi_app = DebuggedApplication(app.wsgi_app, True)
app.debug = True