Maison > développement back-end > Tutoriel Python > Comment servir un fichier HTML spécifique sur le chemin racine à l'aide de FastAPI et StaticFiles ?

Comment servir un fichier HTML spécifique sur le chemin racine à l'aide de FastAPI et StaticFiles ?

Linda Hamilton
Libérer: 2024-11-12 05:34:01
original
579 Les gens l'ont consulté

How to Serve a Specific HTML File on the Root Path Using FastAPI and StaticFiles?

Servir des fichiers HTML personnalisés dans le chemin racine de FastAPI avec StaticFiles

Lors de l'utilisation de FastAPI avec StaticFiles, la diffusion de fichiers HTML personnalisés peut différer de celle comportement attendu. La configuration par défaut charge automatiquement index.html lorsqu'un middleware de fichier statique est monté sur le chemin racine. Cependant, il est possible de remplacer cela et d'afficher un fichier HTML différent en suivant ces étapes :

Monter des fichiers statiques sur un chemin différent

Pour éviter le problème de chargement d'index.html , montez l'instance StaticFiles sur un chemin unique au lieu de la racine. Par exemple, montez-le sur /static :

app.mount(
    "/static",
    StaticFiles(directory="static", html=True),
    name="static",
)
Copier après la connexion

Définition du point de terminaison du chemin racine

Ensuite, créez un point de terminaison personnalisé pour gérer le chemin racine. Ce point de terminaison renverra le fichier HTML personnalisé souhaité :

@app.get("/")
async def index():
    return FileResponse("static/custom.html", media_type="html")
Copier après la connexion

Ordre des définitions

L'ordre des définitions est crucial. Si vous montez StaticFiles avant de définir le point de terminaison du chemin racine, l'application StaticFiles traitera toutes les requêtes adressées au chemin racine, y compris celle définie dans le point de terminaison.

Exemple avec un ordre approprié

Voici un exemple avec l'ordre correct des définitions :

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse

app = FastAPI()

@app.get("/")
async def index():
    return FileResponse("static/custom.html", media_type="html")

app.mount(
    "/static",
    StaticFiles(directory="static", html=True),
    name="static",
)
Copier après la connexion

En suivant ces étapes, vous pouvez servir des fichiers HTML personnalisés dans le chemin racine de votre application FastAPI tout en continuant à utiliser StaticFiles pour servir des fichiers statiques.

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