Respuestas:
La ejecución de la aplicación en modo de desarrollo mostrará un rastreo interactivo y una consola en el navegador cuando haya un error. Para ejecutar en modo de desarrollo, configure la FLASK_ENV=development
variable de entorno y luego use el flask run
comando (recuerde señalarFLASK_APP
a su aplicación).
Para Linux, Mac, Subsistema de Linux para Windows, Git Bash en Windows, etc.
export FLASK_APP=myapp
export FLASK_ENV=development
flask run
Para Windows CMD, use en set
lugar de exportar:
set FLASK_ENV=development
Para PowerShell, use $env
:
$env:FLASK_ENV = "development"
Antes de Flask 1.0, esto estaba controlado por la FLASK_DEBUG=1
variable de entorno en su lugar.
Si está utilizando el app.run()
método en lugar del flask run
comando, pase debug=True
para habilitar el modo de depuración.
Las trazas también se imprimen en el terminal que ejecuta el servidor, independientemente del modo de desarrollo.
Si está utilizando PyCharm, VS Code, etc., puede aprovechar su depurador para recorrer el código con puntos de interrupción. La configuración de ejecución puede apuntar a una secuencia de comandos app.run(debug=True, use_reloader=False)
, o apuntarla a la venv/bin/flask
secuencia de comandos y usarla como lo haría desde la línea de comandos. Puede dejar el recargador deshabilitado, pero una recarga matará el contexto de depuración y deberá volver a tomar un punto de interrupción.
También puede usar pdb, pudb u otro depurador de terminal llamando set_trace
a la vista donde desea comenzar la depuración.
Asegúrese de no usar demasiado ancho, excepto los bloques. Rodear todo su código con un comodín try... except...
silenciará el error que desea depurar. En general, es innecesario, ya que Flask ya manejará las excepciones mostrando el depurador o un error 500 e imprimiendo el rastreo en la consola.
Puede usarlo app.run(debug=True)
para la edición de Werkzeug Debugger como se menciona a continuación, y debería haberlo sabido.
debug=True
, en realidad estás usando el depurador Werkzeug, por lo que no es uno u otro;
print 'xyz'
se imprimirá en la consola. Si desea depurar en el navegador, deberá forzar un error en el lugar donde desea depurar. raise Exception('xyz')
. Esto activará la depuración a la salida en la ventana del navegador.
Desde la 1.1.x
documentación , puede habilitar el modo de depuración exportando una variable de entorno a su indicador de shell:
export FLASK_APP=/daemon/api/views.py # path to app
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
También se puede usar la barra de herramientas de depuración de frascos extensión para obtener información más detallada incrustada en páginas renderizadas.
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>"
Inicie la aplicación de la siguiente manera:
FLASK_APP=main.py FLASK_DEBUG=1 flask run
Si está utilizando Visual Studio Code, reemplace
app.run(debug=True)
con
app.run()
Aparece cuando se enciende el depurador interno deshabilita el depurador de VS Code.
Si desea depurar su aplicación de matraz, simplemente vaya a la carpeta donde está la aplicación de matraz. No olvides activar tu entorno virtual y pegar las líneas en la consola, cambiar "mainfilename" al archivo principal del frasco.
export FLASK_APP="mainfilename.py"
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
Después de habilitar su depurador para la aplicación de matraz, casi todos los errores se imprimirán en la consola o en la ventana del navegador. Si desea averiguar qué está sucediendo, puede usar declaraciones de impresión simples o también puede usar console.log () para el código javascript.
Instalar python-dotenv
en su entorno virtual.
Cree un .flaskenv en la raíz de su proyecto. Por raíz del proyecto, me refiero a la carpeta que tiene su archivo app.py
Dentro de este archivo escriba lo siguiente:
FLASK_APP=myapp
FLASK_ENV=development
Ahora emita el siguiente comando:
flask run
Consejo rápido: si utiliza un PyCharm, vaya a Edit Configurations
=> Configurations
y active la FLASK_DEBUG
casilla de verificación, reinicie el Run
.
Utilice los registradores y las declaraciones impresas en el Entorno de desarrollo, puede ir a centinela en caso de entornos de producción.
Si lo está ejecutando localmente y desea poder recorrer el código:
python -m pdb script.py
app.run()
(ya sea con la depuración activada o desactivada). Flask se comporta como cualquier otra aplicación de Python, por lo que puede depurarlo de la misma manera que depura cualquier aplicación de Python. Si desea usar el registro, use el registro. Si desea imprimir, use impresiones. Incluso puede usar un depurador si lo desea.