Відповіді:
Якщо запустити додаток у режимі розробки, у веб-переглядачі з’явиться інтерактивний трекбек та консоль, коли з’явиться помилка. Для запуску в режимі розробки встановіть FLASK_ENV=development
змінну середовища, а потім скористайтеся flask run
командою (не забудьте вказати і FLASK_APP
на вашу програму).
Для Linux, Mac, підсистеми Linux для Windows, Git Bash для Windows тощо:
export FLASK_APP=myapp
export FLASK_ENV=development
flask run
Для Windows CMD використовуйте set
замість експорту:
set FLASK_ENV=development
Для PowerShell використовуйте $env
:
$env:FLASK_ENV = "development"
До Flask 1.0 це контролювало FLASK_DEBUG=1
змінна середовища.
Якщо ви використовуєте app.run()
метод замість flask run
команди, перейдіть, debug=True
щоб увімкнути режим налагодження.
Зворотні звороти також друкуються до терміналу, на якому працює сервер, незалежно від режиму розробки.
Якщо ви використовуєте PyCharm, VS Code тощо, ви можете скористатися його налагоджувачем, щоб перейти через код з точками переривання. Конфігурація запуску може вказувати на виклик сценарію app.run(debug=True, use_reloader=False)
або вказувати його на venv/bin/flask
скрипт і використовувати його як у командному рядку. Ви можете залишити перевантажувач вимкненим, але перезавантаження вбиває контекст налагодження, і вам доведеться знову зловити точку перерви.
Ви також можете використовувати pdb, pudb або інший термінальний налагоджувач, зателефонувавши set_trace
у подання, де ви хочете розпочати налагодження.
Не забудьте використовувати занадто широкі, крім блоків. Оточення всього коду ловом- try... except...
загалом приглушить помилку, яку ви хочете налагодити. Це взагалі непотрібно, оскільки Flask вже обробляє винятки, показуючи налагоджувач або помилку 500 та друкуючи зворотний шлях до консолі.
Ви можете використовувати app.run(debug=True)
для редагування відладчика Werkzeug, як згадувалося нижче, і я мав би знати.
debug=True
вами, ви фактично використовуєте відладчик Werkzeug, тому це не є або ;-)
print 'xyz'
буде надруковано на консоль. Якщо ви хочете налагоджувати в браузері, вам потрібно буде виправити помилку щодо того, де ви хочете налагоджувати. raise Exception('xyz')
. Це призведе до налагодження для виводу у вікно браузера.
З 1.1.x
документації ви можете ввімкнути режим налагодження, експортувавши змінну оточуючого середовища в підказку оболонки:
export FLASK_APP=/daemon/api/views.py # path to app
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
Можна також скористатися розширенням Панель інструментів налагодження для налагодження, щоб отримати більш детальну інформацію, вкладену у візуалізовані сторінки.
from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension
import logging
app = Flask(__name__)
app.debug = True
app.secret_key = 'development key'
toolbar = DebugToolbarExtension(app)
@app.route('/')
def index():
logging.warning("See this message in Flask Debug Toolbar!")
return "<html><body></body></html>"
Запустіть програму наступним чином:
FLASK_APP=main.py FLASK_DEBUG=1 flask run
Якщо ви використовуєте код Visual Studio, замініть
app.run(debug=True)
з
app.run()
З'являється, коли ввімкнути внутрішній налагоджувач відключає відладчик коду VS.
Якщо ви хочете налагодити додаток у колбі, просто перейдіть до папки, де є додаток. Не забудьте активувати своє віртуальне середовище і вставити рядки в консолі, змінивши "головне ім'я", щоб передати основний файл.
export FLASK_APP="mainfilename.py"
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
Після ввімкнення програми налагодження програми для колби майже кожна помилка буде надрукована на консолі чи у вікні браузера. Якщо ви хочете з’ясувати, що відбувається, ви можете використовувати прості друковані висловлювання або також використовувати console.log () для коду javascript.
Встановіть python-dotenv
у вашому віртуальному середовищі.
Створіть .flaskenv у корені проекту. Під коренем проекту я маю на увазі папку, у якій є ваш файл app.py
Всередині цього файлу напишіть наступне:
FLASK_APP=myapp
FLASK_ENV=development
Тепер видайте таку команду:
flask run
Коротка порада - якщо ви використовуєте PyCharm, перейдіть до Edit Configurations
=> Configurations
та увімкніть FLASK_DEBUG
прапорець, перезапустіть Run
.
Якщо ви запускаєте його локально і хочете мати можливість перейти через код:
python -m pdb script.py
app.run()
(ні з налагодженням, ні відключенням). Flask веде себе як і будь-яке інше додаток python, тому ви можете налагоджувати його так само, як і налагоджувати будь-яку програму Python. Якщо ви хочете використовувати журнал, використовуйте журнал. Якщо ви хочете друкувати, використовуйте відбитки. Ви навіть можете використовувати налагоджувач, якщо хочете.