Maison >développement back-end >Tutoriel Python >Les décorateurs de flacons les plus utilisés
Flask est l'un des micro-frameworks les plus populaires pour créer des applications Web en Python, et une grande partie de sa puissance vient de l'utilisation de décorateurs. Ces décorateurs vous permettent de vous connecter aux fonctionnalités du framework de manière claire et lisible, sans encombrer votre code. Dans cet article, nous explorerons les cinq décorateurs Flask les plus couramment utilisés, ainsi que deux mentions honorables.
1 @app.route()
Le décorateur @app.route() est utilisé pour définir le routage URL de votre application Flask. Il lie une URL à une fonction Python qui gère la logique de cette route.
Exemple :
@app.route('/')
def maison() :
return "Bienvenue sur la page d'accueil!"
Cet exemple simple mappe l'URL racine (/) à la fonction home(), renvoyant un message de bienvenue aux visiteurs.
2 @app.before_request()
Ce décorateur exécute une fonction avant chaque demande. C'est parfait pour vérifier l'authentification, initialiser des variables ou configurer des ressources.
Exemple :
@app.before_request
def check_authentication() :
sinon user_is_logged_in() :
return "Veuillez vous connecter", 401
Dans ce cas, la fonction vérifie si un utilisateur est authentifié avant de lui permettre de continuer.
3 @app.after_request()
Le décorateur @app.after_request() vous permet de modifier la réponse après le traitement d'une requête mais avant qu'elle ne soit envoyée au client. Ceci est souvent utilisé pour des tâches telles que l'ajout d'en-têtes ou la journalisation des réponses.
Exemple :
@app.after_request
def add_security_headers(réponse):
réponse.headers['X-Content-Type-Options'] = 'nosniff'
réponse de retour
Ici, un en-tête de sécurité est ajouté à chaque réponse.
4 @app.errorhandler()
La gestion des erreurs est cruciale pour toute application Web. Le décorateur @app.errorhandler() vous permet de définir un comportement personnalisé pour des codes d'état HTTP spécifiques, comme 404 Not Found.
Exemple :
@app.errorhandler(404)
def page_not_found(e):
return "Oups ! Page introuvable.", 404
Ce gestionnaire personnalisé renvoie un message convivial chaque fois qu'une erreur 404 se produit.
5 @app.teardown_request()
Utilisé pour le nettoyage après une requête, @app.teardown_request() garantit que les ressources telles que les connexions à la base de données sont correctement fermées.
Exemple :
@app.teardown_request
def close_db_connection(exception=Aucun):
db_session.remove()
Ici, une session de base de données est fermée après chaque requête, même si une exception a été levée lors du traitement de la requête.
Mentions honorables
Bien que ces décorateurs ne soient pas toujours utilisés aussi fréquemment, ils peuvent être incroyablement utiles dans certains cas :
@app.before_first_request()
Ce décorateur est utilisé pour exécuter une fonction avant que la première requête ne soit traitée. Il est idéal pour initialiser des ressources globales, telles que les connexions à une base de données ou le chargement de la configuration.
@app.before_first_request
def initialize_db() :
db.connect()
@app.context_processor()
Si vous devez injecter des variables dans tous vos modèles Jinja2 globalement, utilisez le décorateur @app.context_processor(). Cela rend les valeurs telles que les configurations actuelles de l'utilisateur ou de l'application disponibles dans chaque modèle.
@app.context_processor
def inject_user() :
retourner dict(current_user=get_current_user())
Avec cela, current_user est disponible dans tous vos modèles sans avoir à le transmettre manuellement à chaque fois.
Conclusion
Les décorateurs de Flask facilitent la gestion du cycle de vie d'une requête Web, la personnalisation du comportement et l'extension des fonctionnalités. Comprendre comment et quand utiliser ces décorateurs courants vous aidera à garder votre code Flask propre, maintenable et puissant. Avons-nous manqué l'un de vos décorateurs préférés ? Faites-le-nous savoir !
Sources
API Flask
Routage des flacons
Gestion des erreurs de flacon
Crochets de demande de flacon
Processeurs de contexte Flask
Flacon avant première demande
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!