Python >> Tutoriel Python >  >> Python

Gestion des erreurs Flask - Afficher des pages d'erreur personnalisées dans Flask

Cet article traitera de différents types d'erreurs HTTP, puis apprendra à utiliser la gestion des erreurs Flask pour résoudre ces erreurs. Alors commençons !

Pourquoi avons-nous besoin de la gestion des erreurs ?

Une erreur dans une application Web peut survenir pour plusieurs raisons. Cela peut être dû à un code incorrect dans l'application ou à de mauvaises demandes de l'utilisateur ou à un temps d'arrêt du serveur.

Il est donc essentiel de gérer ces erreurs. Les navigateurs, bien que gérant par défaut les erreurs HTTP pour vous, la sortie n'est pas tout à fait esthétique.

Par exemple, lors de la création d'une application Flask, vous avez peut-être rencontré une erreur de serveur interne 500.

Une simple ligne indiquant la raison de l'erreur aurait suffi, au lieu d'afficher des données non pertinentes.

C'est là que les gestionnaires d'erreur Flask entrent en jeu.

Avec les gestionnaires d'erreur Flask, nous pouvons :

  1. Personnalisez l'apparence de la page d'erreur.
  2. Afficher uniquement les données pertinentes pour l'utilisateur.

Erreurs HTTP courantes

Certaines des erreurs les plus courantes signalées sont :

Codes d'erreur HTTP Signification
301 Déplacé définitivement
302 Déplacé temporairement
400 Mauvaise demande
403 Interdit
404 Introuvable
429 Trop de demandes
500 Erreur de serveur interne
502 Mauvaise passerelle
503 Service indisponible
504 Délai d'expiration de la passerelle

Travail avec la gestion des erreurs Flask

Codes d'erreur - 404 et 500 sont les erreurs les plus courantes auxquelles nous sommes confrontés au quotidien.

Donc, dans cette section, nous allons construire un simple gestionnaire d'erreurs pour 404 et 500. La syntaxe pour les autres erreurs sera exactement la même.

Dans flask, nous utilisons le décorateur intégré error_handler .

La syntaxe est :

@app.errorhandler(status_code)
def function_name(error):
    return render_template('xyz.html'),status_code

Par conséquent, considérez l'exemple d'application Flask suivant :

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/blogs')
def blog():
    return render_template('blog.html')

#Handling error 404 and displaying relevant web page
@app.errorhandler(404)
def not_found_error(error):
    return render_template('404.html'),404

#Handling error 500 and displaying relevant web page
@app.errorhandler(500)
def internal_error(error):
    return render_template('500.html'),500

#app.run(host='localhost', port=5000)
app.run(host='localhost', port=5000)

Le Blog.html :

<h2>Welcome to the Blog</h2>

Le 404.html fichier :

<h2>The webpage you are trying is not found</h2>
<img src = "{{url_for('static','images/opps.jpg') }}"

Ici, nous utilisons également une image à afficher sur la page Web 404

De même, le 500.html fichier :

<h2>Something Went Wrong</h2>

Mise en œuvre

Exécutez maintenant le serveur et accédez à n'importe quel point de terminaison d'URL inexistant arbitraire

Maintenant, pour obtenir l'erreur 500, échangez délibérément quelques lettres de render_template() disons remder_template()

Redémarrez maintenant le serveur et accédez à "/blogs" URL. Vous obtiendrez maintenant la page d'erreur 500

Parfait !

Conclusion

C'est ça les gars !! Vous pouvez désormais également personnaliser les pages d'erreur en fonction du thème de votre page Web. Consultez nos autres didacticiels Flask pour en savoir plus sur Flask.

Rendez-vous les gars dans le prochain article !! Bon codage 🙂