Mode de débogage de Flask

Salman Mehmood 15 février 2024
Mode de débogage de Flask

Nous apprendrons, avec cette explication, quelques choses que nous obtenons lorsque nous utilisons le mode de débogage dans Flask et comment utiliser une extension qui fournit une barre d’outils de débogage.

Activer le mode de débogage dans Flask

Le mode débogage est destiné aux environnements de développement. Lorsque vous développez votre application, vous pouvez l’utiliser, mais si vous disposez d’une version en direct de votre application, vous souhaitez désactiver le mode de débogage.

Nous avons créé une application Flask de base et activé le mode de débogage dans la méthode run().

from flask import Flask

app = Flask(__name__)


@app.route("/", methods=["GET"])
def Basic_DEBUG():
    return "Hi there, debug mode is on"


if __name__ == "__main__":
    app.run(debug=True)

Il existe d’autres façons de le faire, mais pour l’instant, nous allons vous montrer cette façon simple de déboguer l’application Flask. Dans la section suivante, nous apprendrons une autre façon de le déboguer.

Démarrons le serveur en utilisant ce fichier, et nous pouvons voir que notre serveur est démarré en mode débogage. Maintenant, si nous voulons apporter une modification au fichier et une fois que nous l’avons enregistré, le mode débogage va détecter les modifications et redémarrer le serveur automatiquement.

Nous n’avons pas à le quitter et à le redémarrer. Nous n’avons qu’à rafraîchir la page.

Sortie 1 du mode de débogage de Flask

Voyons ce qui se passe lorsque quelque chose ne va pas pendant que le débogage est actif. Levons une exception :

from flask import Flask

app = Flask(__name__)


@app.route("/", methods=["GET"])
def Basic_DEBUG():
    CHECK = 6 / 0
    return "Hi there, debug mode is on"


if __name__ == "__main__":
    app.run(debug=True)

Lorsque nous l’enregistrons et actualisons la page, il génère une ZeroDivisionError et nous pouvons voir une trace de l’endroit où il a échoué. Nous pouvons voir la source de l’échec ; lorsque nous cliquons ici, il nous montre la source et dispose d’un mode interactif.

Cela ouvre une petite console, et vous pouvez apporter quelques modifications ici et voir pourquoi vous ne voudriez pas cela dans un environnement de production, car n’importe qui peut simplement exécuter le code ici.

Sortie 2 du mode de débogage de Flask

Rendre l’outil de débogage à l’aide de DebugToolbarExtension

Nous verrons comment cela fonctionne et où nous le trouverons utile lorsque nous développerons nos applications Flask. Nous devrons d’abord installer ce package à l’aide de la commande suivante.

pip install flask-debugtoolbar

Une fois installé, nous devrons le configurer dans l’application Flask. c’est une barre d’outils visuelle et fonctionne avec un modèle. La seule façon dont vous pouvez l’utiliser est si vous utilisez des modèles jinja, c’est pourquoi nous allons inclure render_template() et créer un fichier HTML.

Nous allons maintenant nous occuper de l’extension de la barre d’outils de débogage. Pour l’utiliser, la première chose que nous devons importer est DebugToolbarExtension ; ensuite, nous devons définir quelques configurations.

Nous allons définir la propriété debug égale à True, et nous devons le déclarer avant d’instancier la barre d’outils. Ensuite, l’autre valeur de configuration dont nous avons besoin est une SECRET_KEY.

Ensuite, nous devrons instancier la barre d’outils de débogage appelée DebugToolbarExtension() et la transmettre à l’application.

TBAR = DebugToolbarExtension(app)

Une fois que nous avons instancié la barre d’outils de débogage, la barre d’outils sera automatiquement injectée dans tout modèle que vous avez renvoyé en réponse.

from flask import Flask, render_template
from flask_debugtoolbar import DebugToolbarExtension

app = Flask(__name__)

app.debug = True
app.config["SECRET_KEY"] = "TEST_KEY"
TBAR = DebugToolbarExtension(app)


@app.route("/", methods=["GET"])
def DEBUG_ToolBar():
    return render_template("index.html")


if __name__ == "__main__":
    app.run()

Lorsque nous actualisons la page, la barre d’outils apparaît sur le côté droit. Il nous montre un tas de choses utiles dont nous pourrions avoir besoin lors du débogage.

La première chose est les versions; il nous indique quelle version nous utilisons, et le suivant est le temps qui nous indique combien de temps il a fallu pour générer cette page. Vous pouvez explorer toutes ces variables par vous-même.

Sortie 3 du mode de débogage de Flask

Nous pouvons voir à quel point cette fonctionnalité est utile même si nous n’avons pas à regarder à l’intérieur de notre débogueur dans les outils de développement de la console ou du navigateur.

Code source du modèle :

<html>
    <head>
        <body>
            <h1>Hi there, this is debug toolbar</h1>
        </body>
    </head>
</html>
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn