Создание API-интерфейса Python для FatSecret и получение внутренней ошибки сервера [дубликат]

Да, программа плохо сформирована, когда override добавляется к любой не виртуальной функции.

Как правило, функции с различными сигнатурами (перегруженными) различаются как функции с разными именами. Пример, приведенный в Spec, не означает, что функция name влияет на override. Он предназначен для отображения общей ошибки, которую предотвращает override.

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 15 August 2018 в 22:22
поделиться
  • 1
    Этот ответ был бы более полезным, если бы он объяснил, что на самом деле режим отладки. Это делает больше, чем позволяет отлаживать в браузере? К сожалению, поскольку я работаю над REST API, это не очень помогает мне. – Michael Scheper 12 April 2017 в 19:47

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

12
ответ дан bnlucas 15 August 2018 в 22:22
поделиться
  • 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 15 August 2018 в 22:22
поделиться
  • 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 15 August 2018 в 22:22
поделиться
  • 1
    Можете ли вы поделиться примером рабочей установки? У меня уже установлен FLASK_APP в моем env, и конфигурация по умолчанию не работает. Я попробовал это - pastebin.com/v8hBQ2vv и ряд подобных перестановок, но безрезультатно. – Brandon Dube 31 May 2018 в 18:57

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

python -m pdb script.py

0
ответ дан rstackhouse 15 August 2018 в 22:22
поделиться
61
ответ дан davidism 5 September 2018 в 22:06
поделиться
0
ответ дан Sgryt87 5 September 2018 в 22:06
поделиться
0
ответ дан omkar yadav 29 October 2018 в 05:12
поделиться
Другие вопросы по тегам:

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