"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment servir un fichier HTML personnalisé dans le chemin racine de FastAPI avec StaticFiles ?

Comment servir un fichier HTML personnalisé dans le chemin racine de FastAPI avec StaticFiles ?

Publié le 2024-11-11
Parcourir:532

How to Serve a Custom HTML File in FastAPI's Root Path with StaticFiles?

Comment servir un fichier HTML spécifique dans le chemin racine de FastAPI tout en utilisant StaticFiles

Lorsque vous utilisez FastAPI avec StaticFiles pour servir des fichiers statiques, vous peut rencontrer des scénarios dans lesquels vous souhaitez charger un fichier HTML différent (par exemple, custom.html) dans le chemin racine au lieu du fichier index.html par défaut. Ceci peut être réalisé en comprenant certains aspects du routage de FastAPI et de la fonctionnalité StaticFiles.

Comprendre StaticFiles

Selon la documentation de Starlette, StaticFiles est un middleware qui gère la diffusion de fichiers statiques à partir de un répertoire spécifié. Lorsque html=True est défini, il recherche automatiquement les fichiers index.html dans les répertoires et les sert en conséquence.

Ordre de montage

L'ordre de montage des StaticFiles et la définition de votre les points de terminaison jouent un rôle crucial. Si StaticFiles est monté sur le chemin racine (c'est-à-dire /) et défini avant tout point de terminaison, il sera prioritaire et traitera toutes les demandes, même si les points de terminaison personnalisés sont définis ultérieurement.

Personnalisation du chemin racine

Pour servir un fichier HTML spécifique dans le chemin racine, vous devez suivre ces étapes :

  1. Monter StaticFiles vers un chemin séparé (par exemple, /static) :

    app.mount('/static', StaticFiles(directory='static'))
  2. Créer un point de terminaison personnalisé qui renvoie le fichier HTML souhaité :

    @app.get('/')
    async def index():
        return FileResponse('custom.html')
  3. Montez StaticFiles après avoir défini le point de terminaison personnalisé pour garantir la priorité du point de terminaison.

Considérations supplémentaires

  • Assurez-vous que custom.html se trouve dans le répertoire correct spécifié dans le montage StaticFiles path.
  • Comprenez que si StaticFiles gère une requête et ne trouve pas de fichier avec le chemin demandé, il renverra une réponse 404 Not Found.
  • L'utilisation de modèles au lieu de FileResponse offre plus de flexibilité pour mise à jour dynamique des fichiers HTML.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3