Aller au contenu

Fichiers statiques

Starlette inclut également une classe StaticFiles pour fournir des services de fichiers dans un répertoire donné:

Fichiers statiques

Signé par: StaticFiles(directory=None, packages=None, html=False, check_dir=True, follow_symlink=False)

  • directory - Une chaîne représentant le chemin du répertoire ou os. PathLike.
  • packages - Une liste de chaînes ou une liste de tuples de chaînes pour un paquet Python.
  • html-fonctionne en mode HTML.index.html est automatiquement chargé pour le répertoire si un tel fichier existe.
  • check_dir-Assurez-vous que le répertoire existe au moment de l'instanciation.True est par défaut.
  • follow_symlink-Une valeur booléenne indiquant si les liens symboliques des fichiers et des répertoires doivent être suivis.False est par défaut.

Vous pouvez combiner cette application ASGI avec le routage de Starlette pour fournir un service complet de fichiers statiques.

de starlette.applications import Starlette
depuis starlette.routing import Mount
de starlette.staticfiles import StaticFiles


Routes = [
    ...
    Mount('/static', app=StaticFiles(directory ='static'), name="static"),
]

app = Starlette(routes=routes)

Pour les requêtes qui ne correspondent pas, le fichier statique répondra par « 404 introuvable » ou « 405 méthode non autorisée ». En mode HTML, si un fichier 404.html existe, il apparaîtra comme une réponse 404.

packages Les options peuvent être utilisées pour inclure des répertoires « statiques » au sein d'un paquet Python. le paquet « bootstrap4 » de Python en est un exemple.

de starlette.applications import Starlette
depuis starlette.routing import Mount
de starlette.staticfiles import StaticFiles


Routes=[
    ...
    Mount('/static', app=StaticFiles(directory ='static', packages=[' bootstrap4 ']), name=' static'),
]

app = Starlette(routes=routes)

Par défaut,StaticFiles recherche le répertoire statics dans chaque paquet et vous pouvez modifier le répertoire par défaut en spécifiant un tuple de chaînes.

Routes=[
    ...
    Mount('/static', app=StaticFiles(packages=[('bootstrap4', 'static')]), name="static"),
]

Vous préférerez peut-être inclure des fichiers statiques directement dans un répertoire « statique » plutôt que d'utiliser un package Python pour inclure des fichiers statiques, mais cela peut être utile pour regrouper des composants multiplexables.