¿Cómo estás destinado a depurar errores en el Frasco? Imprimir en la consola? Mensajes Flash los mensajes Flash a la página? O es que hay un más potente opción disponible para averiguar qué ocurre cuando algo va mal?

  • No hay nada mágico acerca de app.run() (ya sea con la depuración activada o desactivada). El matraz se comporta como cualquier otra aplicación python, así que usted puede depuración de la misma manera que depurar cualquier Python aplicación. Si desea usar las funciones de registro, registro de uso. Si desea imprime, el uso de las impresiones. Usted puede incluso utilizar un depurador si quieres.
InformationsquelleAutor Kimmy | 2013-06-26

10 Comentarios

  1. 91

    Ejecuta la aplicación en modo de desarrollo, se muestra un interactivo sobre la procedencia del producto y de la consola en el navegador cuando hay un error. Para que se ejecute en modo de desarrollo, establezca el FLASK_ENV=development variable de entorno, a continuación, utilizar la flask run comando (recordar a punto de FLASK_APP para su aplicación así).

    Para Linux, Mac, Linux Subsistema de Windows, Git Bash en Windows, etc.:

    export FLASK_APP=myapp
    export FLASK_ENV=development
    flask run

    Para Windows CMD, uso set en lugar de exportación:

    set FLASK_ENV=development

    Para PowerShell, uso $env:

    $env:FLASK_ENV = "development"

    Antes Matraz 1.0, esta fue controlada por el FLASK_DEBUG=1 variable de entorno en su lugar.

    Si usted está utilizando el app.run() método en lugar de la flask run comando, pasar debug=True habilitar el modo de depuración.

    Las trazas de retorno son también impreso en la terminal ejecuta el servidor, independientemente de su modo de desarrollo.

    Si usted está usando PyCharm, VS Código, etc., usted puede tomar ventaja de su depurador paso a través del código con los puntos de interrupción. La configuración puede apuntar a una secuencia de comandos de llamada app.run(debug=True, use_reloader=False), o el punto que en el venv/bin/flask guión y usarlo como si fuera desde la línea de comandos. Usted puede dejar el reloader movilidad, pero una recarga va a matar a la depuración de contexto y tendrá que coger un punto de interrupción de nuevo.

    También puede utilizar pdb, pudb, o de otro terminal depurador llamando set_trace en la vista en la que desea iniciar la depuración.


    Asegúrate de no usar demasiado amplia, excepto los bloques. Rodeando todo su código con un catch-all try... except... el silencio el error desea depurar. Es innecesario en general, desde el Frasco ya el manejo de excepciones mostrando el depurador o un error 500 y la impresión de la traza para la consola.

  2. 25

    Puede utilizar app.run(debug=True) para la Werkzeug Depurador editar como se menciona a continuación, y yo debería haber sabido.

    • En realidad, cuando se ejecuta con debug=True en realidad se está utilizando el Werkzeug debuger así que no es una o la otra 😉
    • Ja, tienes razón. Supongo que debería haber mirado el Matraz del setup.py para los requisitos. Yo uso una copia modificada de la misma para trabajar bajo GAE donde tienes que inicializar Werkzeug manualmente.
    • He puesto la app.ejecutar(debug=True), si se me permite imprimir xyz ¿de dónde imprimir, gracias
    • El uso de print 'xyz' se imprimirá en la consola. Si desea depurar en el navegador, usted tendrá que forzar un error en donde son ganas de depuración. raise Exception('xyz'). Esto activará la depuración de salida en la ventana del navegador.
  3. 14

    De la 0.11 documentación, puede habilitar el modo de depuración por la exportación de una variable de entorno:

    export FLASK_APP=/daemon/api/views.py  # path to app
    export FLASK_DEBUG=1
    python -m flask run --host=0.0.0.0
    • Esta respuesta sería más útil si se explica lo que el modo de depuración en realidad es. Hace más de permitir la depuración en el navegador? Por desgracia, desde que estoy trabajando en una API REST, que realmente no me ayuda mucho.
  4. 9

    Si está utilizando Visual Studio Código, reemplace

    app.run(debug=True)

    con

    app.run()

    Aparece al encender el interior del depurador desactiva el VS depurador de Código.

    • Puede usted dar un ejemplo de una configuración? He FLASK_APP definido en mi env ya y la configuración por defecto no funciona. Traté de ésta, pastebin.com/v8hBQ2vv y un número similar de permutaciones, pero fue en vano.
  5. 9

    También se puede utilizar el Matraz Barra De Herramientas De Depuración extensión para obtener información más detallada incrustado en páginas presentadas.

    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>"

    De inicio de la aplicación de la siguiente manera:

    FLASK_APP=main.py FLASK_DEBUG=1 flask run
  6. 4

    Si quieres depurar tu flak de la aplicación basta con ir a la carpeta donde matraz de aplicación, no se olvide de activar su entorno virtual y pegar las líneas en la consola de cambio «mainfilename» para matraz archivo principal.

    export FLASK_APP="mainfilename.py"
    export FLASK_DEBUG=1
    python -m flask run --host=0.0.0.0

    Después de activar el depurador para el frasco de la aplicación de casi todos los errores se imprimirá en la consola o en la ventana del navegador.
    Si desea averiguar qué es lo que les pasa puede utilizar simples instrucciones de impresión o también puede utilizar la consola.log() en el código javascript.

    • Por favor, edita tu respuesta a proporcionar algunos narrativa volver a cómo contesta a la pregunta. Gracias. (También, que parecen tener un duplicado de la línea.)
    • Hecho!
    • Esto funciona perfectamente, gracias 🙂
  7. 0

    Si se ejecuta de forma local y desea ser capaz de recorrer paso a paso el código:

    python -m pdb script.py

  8. 0

    Consejo rápido – si utiliza un PyCharm, ir a Edit Configurations => Configurations y habilitar FLASK_DEBUG casilla de verificación reiniciar el Run.

    • Es posible que desee agregar que esta casilla de verificación sólo está disponible en PyCharm Profesional. Referencia: jetbrains.com/help/pycharm/…
  9. 0

    El uso de registradores de impresión y declaraciones en el Entorno de Desarrollo, usted puede ir para el centinela, en el caso de los entornos de producción.

  10. 0

    Instalar python-dotenv en su entorno virtual.

    Crear una .flaskenv en la raíz del proyecto. Por la raíz del proyecto, me refiero a la carpeta que tiene su app.py archivo

    Dentro de este archivo, escribe el siguiente:

    FLASK_APP=myapp 
    FLASK_ENV=development

    Ahora emita el comando siguiente:

    flask run

Dejar respuesta

Please enter your comment!
Please enter your name here