Не получать debug / logs, когда локальное приложение Flask возвращает 500 из команды CURL [duplicate]

Modern RegEx Flavors (PCRE)

Включает C, C ++, Delphi, EditPad, Java, JavaScript, Perl, PHP (preg), PostgreSQL, PowerGREP, PowerShell, Python, REALbasic, Real Studio, Ruby , TCL, VB.Net, VBScript, wxWidgets, XML Schema, Xojo, XRegExp.PCRE совместимость может различаться

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Anywhere: . ^ $ * + - ? ( ) [ ] { } \ |


Legacy RegEx Flavors (BRE / ERE)

Включает поддержку awk, ed, egrep, emacs, GNUlib, grep, PHP (ereg), MySQL, Oracle, R, sed.PCRE версии или с помощью расширений

ERE / awk / egrep / emacs

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Вне класса символов: . ^ $ * + ? ( ) [ { } \ | & nbsp; & nbsp; & nbsp; & nbsp; Внутри класса символов: ^ - [ ]

BRE / ed / grep / sed

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & nbsp; внутри класса символов: ^ - [ ] & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; g16]


Примечания

  • Если неуверенность a bout с определенным символом, он может быть экранирован как \xFF
  • Буквенно-цифровые символы не могут быть экранированы с помощью обратного слэша
  • Произвольные символы могут быть экранированы с помощью обратного слэша в PCRE, но не BRE / ERE (при необходимости их нужно избегать). Для PCRE ] - требуется только экранирование в классе символов, но я сохранил их в одном списке для простоты
  • . Цитированные строки выражения также должны иметь экранированные символы пробега, а часто с обратной косой чертой удвоились ( как "(\")(/)(\\.)" по сравнению с /(")(\/)(\.)/ в JavaScript)
  • . Помимо экранов, различные реализации регулярных выражений могут поддерживать различные модификаторы, классы символов, якоря, кванторы и другие функции. Для получения дополнительной информации посмотрите regular-expressions.info или используйте regex101.com , чтобы проверить свои выражения в реальном времени
65
задан davidism 29 June 2015 в 15:26
поделиться

8 ответов

Из документации 0.11 вы можете включить режим отладки, экспортировав переменную среды:

export FLASK_APP=/daemon/api/views.py  # path to app
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
7
ответ дан Édouard Lopez 16 August 2018 в 04:34
поделиться
  • 1
    Этот ответ был бы более полезным, если бы он объяснил, что на самом деле режим отладки. Это делает больше, чем позволяет отлаживать в браузере? К сожалению, поскольку я работаю над REST API, это не очень помогает мне. – Michael Scheper 12 April 2017 в 19:47

Вы можете использовать app.run(debug=True) для редактирования Werkzeug Debugger , как указано ниже, и я должен был знать.

12
ответ дан bnlucas 16 August 2018 в 04:34
поделиться
  • 1
    На самом деле, когда вы работаете с debug=True, вы фактически используете отладчик Werkzeug, поэтому он не является ни одним из них ;-) – Sean Vieira 26 June 2013 в 02:02
  • 2
    Ха, ты прав. Наверное, я должен был посмотреть на setup.py Flask для требований. Я использую модифицированную копию его для работы в GAE, где вы должны инициализировать Werkzeug вручную. – bnlucas 26 June 2013 в 02:05
  • 3
    Я установил app.run (debug = True), если я печатаю xyz, где он печатает, спасибо – Kimmy 28 June 2013 в 12:40
  • 4
    Использование print 'xyz' будет печататься на консоли. Если вы хотите отлаживать в браузере, вам нужно будет принудительно вызвать ошибку, где вы хотите отлаживать. raise Exception('xyz'). Это вызовет вывод отладки в окне браузера. – bnlucas 28 June 2013 в 16:09

Можно также использовать расширение Flask Debug Toolbar , чтобы получить более подробную информацию, встроенную в отображаемые страницы.

from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension

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
61
ответ дан davidism 16 August 2018 в 04:34
поделиться
  • 1
    Получение следующей ошибки. & quot; NameError: name 'logging' не определено & quot; – Ashwin Yaprala 27 August 2017 в 08:24
  • 2
    @AshwinYaprala import logging (из стандартной библиотеки Python). Но это не требуется. Просто удалите строку logging .... – turdus-merula 28 August 2017 в 18:47

Если вы используете код Visual Studio, замените

app.run(debug=True)

на

app.run()

. При включении внутреннего отладчика отключается отладчик VS Code.

3
ответ дан Eman4real 16 August 2018 в 04:34
поделиться
  • 1
    Можете ли вы поделиться примером рабочей установки? У меня уже установлен FLASK_APP в моем env, и конфигурация по умолчанию не работает. Я попробовал это - pastebin.com/v8hBQ2vv и ряд подобных перестановок, но безрезультатно. – Brandon Dube 31 May 2018 в 18:57

Если вы используете его локально и хотите выполнить код:

python -m pdb script.py

0
ответ дан rstackhouse 16 August 2018 в 04:34
поделиться
61
ответ дан davidism 6 September 2018 в 03:13
поделиться
0
ответ дан Sgryt87 6 September 2018 в 03:13
поделиться
0
ответ дан omkar yadav 29 October 2018 в 09:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: