Comment déboguer un Flacon app
Comment êtes-vous censé pour déboguer les erreurs dans le Flacon? Impression à la console? Flash les messages de la page? Ou est-il plus puissant disponible en option afin de comprendre ce qui se passe quand quelque chose va mal?
- Il n'y a rien de magique
app.run()
(soit avec debug activé ou désactivé). Flacon se comporte comme toute autre application en python, de sorte que vous pouvez déboguer la même façon que vous débogage importe quelle application en Python. Si vous souhaitez utiliser la journalisation, utilisation de la journalisation. Si vous souhaitez des tirages, l'utilisation des estampes. Vous pouvez même utiliser un débogueur si vous le souhaitez.
Vous devez vous connecter pour publier un commentaire.
L'exécution de l'application, le mode de développement montrera interactif assurer la traçabilité et la console dans le navigateur quand il ya une erreur. Pour s'exécuter en mode de développement, définir la
FLASK_ENV=development
variable d'environnement puis utilisez leflask run
de commande (n'oubliez pas de pointFLASK_APP
de votre application ainsi).Pour Linux, Mac, Linux, sous-système pour Windows, Git Bash sur Windows, etc.:
Pour Windows CMD, utilisez
set
au lieu de l'exportation:Pour PowerShell, utilisez
$env
:Avant Flacon 1.0, cela a été contrôlé par la
FLASK_DEBUG=1
variable d'environnement à la place.Si vous êtes à l'aide de la
app.run()
méthode au lieu de laflask run
de commande, passerdebug=True
pour activer le mode debug.Retraçage sont également imprimé sur le terminal de l'exécution du serveur, indépendamment du mode de développement.
Si vous utilisez PyCharm, VS Code, etc., vous pouvez prendre avantage de son débogueur pour parcourir le code, avec des points d'arrêt. La configuration d'exécution peut pointer vers un script appelant
app.run(debug=True, use_reloader=False)
, ou de le pointer sur levenv/bin/flask
script et l'utiliser comme vous le feriez à partir de la ligne de commande. Vous pouvez laisser le reloader désactivé, mais une recharge de tuer le contexte de débogage et vous devrez attraper un point d'arrêt à nouveau.Vous pouvez également utiliser apb, pudb, ou d'un autre terminal débogueur en appelant
set_trace
dans la vue où vous voulez démarrer le débogage.Assurez-vous de ne pas utiliser trop large à l'exception des blocs. Entourant tout votre code avec un fourre-tout
try... except...
silence l'erreur que vous souhaitez déboguer. Il n'est pas nécessaire en général, car le Flacon sera déjà de gérer les exceptions en montrant le débogueur ou une erreur 500 et impression de la traçabilité en amont de la console.Vous pouvez utiliser
app.run(debug=True)
pour la Werkzeug Débogueur modifier comme mentionné ci-dessous, et je devrais avoir connu.debug=True
vous êtes réellement en utilisant le Werkzeug debuger il n'est donc pas une question de choix ou 😉print 'xyz'
sera imprimée à la console. Si vous voulez de débogage dans le navigateur, vous aurez besoin de la force d'une erreur sur où vous êtes désireux de débogage.raise Exception('xyz')
. Cela va déclencher le débogage de sortie dans la fenêtre du navigateur.De la
0.11
de la documentation, vous pouvez activer le mode debug en exportant une variable d'environnement:Si vous utilisez le Code de Visual Studio, remplacer
avec
Il apparaît lorsque vous allumez l'intérieur débogueur désactive le VS débogueur de Code.
On peut également utiliser le Flacon Barre D'Outils De Débogage extension pour obtenir des informations plus détaillées incorporé dans le rendu des pages.
Démarrage de l'application comme suit:
Si vous souhaitez déboguer votre flak application juste allez dans le dossier où flacon application, n'oubliez pas d'activer votre environnement virtuel et coller les lignes dans la console de changement "mainfilename" pour flacon fichier principal.
Après l'activation de votre débogueur pour flacon application presque chaque erreur sera imprimé sur la console ou sur la fenêtre du navigateur.
Si vous voulez comprendre ce qui est happing vous pouvez utiliser de simples instructions d'impression, ou vous pouvez également utiliser la console.log() pour que le code javascript.
Si vous êtes d'exécuter localement et que vous voulez être en mesure de parcourir le code:
python -m pdb script.py
Astuce - si vous utilisez un PyCharm, allez à la
Edit Configurations
=>Configurations
et permettreFLASK_DEBUG
case, redémarrez leRun
.Utilisation des enregistreurs et des instructions d'impression dans l'Environnement de Développement, vous pouvez aller pour la sentinelle dans le cas d'environnements de production.
Installer
python-dotenv
dans votre environnement virtuel.Créer un .flaskenv dans votre racine du projet. Par racine du projet, je veux dire le dossier qui a votre app.py fichier
À l'intérieur de ce fichier d'écrire ce qui suit:
Maintenant, tapez la commande suivante: