Maison > développement back-end > Tutoriel Python > Comment initialiser et réutiliser efficacement des objets globaux dans les points de terminaison FastAPI ?

Comment initialiser et réutiliser efficacement des objets globaux dans les points de terminaison FastAPI ?

Barbara Streisand
Libérer: 2024-12-04 01:22:10
original
929 Les gens l'ont consulté

How to Efficiently Initialize and Reuse Global Objects in FastAPI Endpoints?

Initialisation et réutilisation d'objets globaux dans les points de terminaison FastAPI

Présentation

Dans FastAPI, vous pouvez rencontrer des scénarios dans lesquels l'initialisation d'objets ou de variables globaux dans chaque point de terminaison peut être gourmand en ressources. Les connexions à des services externes ou les calculs complexes en sont des exemples classiques. Cet article propose deux options pour initialiser et réutiliser efficacement les ressources globales dans les points de terminaison FastAPI.

Option 1 : utiliser l'objet de requête

FastAPI vous permet de stocker des objets personnalisés dans l'attribut app.state du Instance d'application FastAPI. Cet attribut est accessible à l'aide de la propriété request.app.state dans les fonctions de point de terminaison. En initialisant l'objet global dans un événement de démarrage ou une fonction de durée de vie et en l'ajoutant à app.state, tous les points de terminaison peuvent accéder et réutiliser l'objet sans avoir besoin de plusieurs initialisations.

Option 2 : Utilisation du gestionnaire Starlette Lifespan

Le framework Starlette fournit un gestionnaire de durée de vie qui vous permet d'exécuter du code avant et après le démarrage et l'arrêt de l'application. Vous pouvez instancier l'objet global dans le gestionnaire de durée de vie et l'ajouter au dictionnaire d'état de durée de vie. En utilisant request.state dans les fonctions de point de terminaison, vous pouvez accéder et réutiliser l'objet dans les points de terminaison.

Conclusion

Les deux options fournissent des mécanismes efficaces pour initialiser et réutiliser des objets globaux dans FastAPI. Le choix dépend des exigences spécifiques et des préférences de votre application.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal