39

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ログにデバッグ情報が表示されません。

何か案は?

フラスコファイル名.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()
4

4 に答える 4

34

この質問は古いですが、今後の参考のために投稿します...

werkzeugエラーページをuwsgiで動作させる場合は、werkzeugのDebuggedApplicationミドルウェアを使用してみてください。

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

これでうまくいくはずですが、開発環境でのみこれを行うことを忘れないでください。

于 2013-07-24T16:29:01.233 に答える
26

Flaskメーリングリストによると、 Flaskのデバッグオプションをで使用することはできませんuWSGI。これは、フォーク環境では使用されないためです。

フラスコ/werkzeugがWebサーバーにデータを送信しないため、502が表示されます。したがって、nginxは502を返します。

uWSGIの--catch-exceptionsオプションを使用してデバッガーをエミュレートできます(ただし、本番環境では実行しないでください)。

だから、あなたが502を見る理由はそれのためでしょう。修正は、実行時に追加すること--catch-exceptionsですuWSGI

于 2012-05-05T09:12:09.017 に答える
24

問題はuwsgi、を呼び出さないことapp.run()です。と呼びますapp()。したがって、代わりにこれを行うことができます:

from flask import Flask
app = Flask(__name__)
app.debug = True
于 2012-04-28T15:33:30.430 に答える
3

私にとっては、上記の2つの答えを次のように組み合わせた後にのみ機能しました。

from flask import Flask
app = Flask(__name__)

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

app.debug = True
于 2018-06-19T20:44:32.040 に答える