Zum Inhalt

Statische Dateien

Starlette enthält auch ein Programm zur Bereitstellung von Dateidiensten in einem bestimmten Verzeichnis. StaticFiles Kategorie:

Statisches Dokument

Unterschrift: StaticFiles(directory=None, packages=None, html=False, check_dir=True, follow_symlink=False)

  • directory - Eine Zeichenfolge, die den Verzeichnispfad oder os. PathLike darstellt.
  • packages - Eine Stringliste oder eine Liste von String-Tupeln in einem Python-Paket.
  • html-Wird im HTML-Modus ausgeführt, wenn eine solche Datei vorhanden ist, wird index.html automatisch für das Verzeichnis geladen.
  • check_dir-Stellen Sie sicher, dass das Verzeichnis zum Zeitpunkt der Instanziierung standardmäßig als True vorhanden ist.
  • follow_symlink - Ein boolescher Wert, der angibt, ob die symbolischen Links von Dateien und Verzeichnissen standardmäßig befolgt werden sollen. False 。

Sie können diese ASGI-Anwendung mit dem Routing von Starlette kombinieren, um einen umfassenden Service für statische Dateien bereitzustellen.

von starlette. applications import Starlette
von starlette. routing import mount
from starlette. staticfiles import StaticFiles (englisch)


Die Bahn […]
    ...
    Mount ('/static', app = StaticFiles (directory ='static'), name ="static"), oder
]

Starlette (Routen = Routen) Bearbeiten

Bei nicht übereinstimmenden Anforderungen antwortet die statische Datei im HTML-Modus mit "404 nicht gefunden" oder "405 Methode nicht erlaubt" und erscheint als 404-Antwort, wenn die 404.html-Datei vorhanden ist.

packages Die Option, ein "statisches" Verzeichnis in Pythons "bootstrap4"-Paket aufzunehmen, ist ein Beispiel dafür.

von starlette. applications import Starlette
von starlette. routing import mount
from starlette. staticfiles import StaticFiles (englisch)


Die Bahn […]
    ...
    Mount ('/static', app = StaticFiles (directory ='static', packages ='bootstrap4']), name ="static"), und
]

Starlette (Routen = Routen) Bearbeiten

Standardmäßig sucht StaticFiles in jedem Paket nach dem statics-Verzeichnis, und Sie können das Standardverzeichnis ändern, indem Sie ein String-Tupel angeben.

Die Bahn […]
    ...
    Mount ('/static', app = StaticFiles (packages =[('bootstrap4 ',' static')]), name ="static"), und
]

Möglicherweise ziehen Sie es vor, statische Dateien direkt in ein "static"-Verzeichnis aufzunehmen, anstatt Python-Pakete zu verwenden, um sie einzuschließen, aber dies kann für die Bündelung wiederverwendbarer Komponenten nützlich sein.