Flask debug = True nie działa podczas przechodzenia przez uWSGI
Wzywam app.run(debug=True)
w moim pliku flask.
uwsgi -s /tmp/uwsgi.sock -w flask_file_name:app -H /path/to/virtual/env --chmod-socket 666
Ale kiedy pojawia się błąd, nie dostaję żadnych informacji o debugowaniu w przeglądarce lub w dzienniku uWSGI.
Jakieś pomysły?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()
4 answers
Zgodnie z listą dyskusyjną Flask nie można użyć opcji debugowania Flask z uWSGI
, ponieważ nie jest ona używana w środowisku forkingowym.
Dlatego widzisz 502. The fix would należy dodaćWidzisz 502 ponieważ flask / werkzeug nie wysyła żadnych danych do serwera www, więc nginx zwróci 502.
Możesz emulować debugger używając opcji --catch-exceptions w uWSGI (ale proszę, nie rób tego w produkcji)
--catch-exceptions
do uWSGI
przy wykonaniu.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-05 09:12:09
To pytanie jest stare, ale zamieszczę to w przyszłości...
Jeśli chcesz, aby strona błędu werkzeug działała z uwsgi, spróbuj użyć middlewareDebuggedApplication
werkzeug:
from werkzeug.debug import DebuggedApplication
app.wsgi_app = DebuggedApplication(app.wsgi_app, True)
To powinno załatwić sprawę, ale nie zapomnij zrobić tego tylko w środowiskach programistycznych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-24 16:29:01
Problem polega na tym, że uwsgi
nie wywołuje app.run()
. Nazywa app()
. Więc zamiast tego możesz to zrobić:
from flask import Flask
app = Flask(__name__)
app.debug = True
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-28 15:33:30
U mnie zadziałało dopiero po połączeniu dwóch powyższych odpowiedzi w ten sposób:
from flask import Flask
app = Flask(__name__)
from werkzeug.debug import DebuggedApplication
app.wsgi_app = DebuggedApplication(app.wsgi_app, True)
app.debug = True
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-19 20:44:32