Heim > Backend-Entwicklung > Python-Tutorial > Wie stelle ich eine benutzerdefinierte HTML-Datei als FastAPI-Root-Pfad bereit?

Wie stelle ich eine benutzerdefinierte HTML-Datei als FastAPI-Root-Pfad bereit?

Barbara Streisand
Freigeben: 2024-11-12 01:49:01
Original
671 Leute haben es durchsucht

How to Serve a Custom HTML File as the FastAPI Root Path?

Benutzerdefinierte HTML-Datei als FastAPI-Stammpfad bereitstellen

Sie möchten eine benutzerdefinierte HTML-Datei wie „custom.html“ als Stammpfad Ihrer FastAPI-App rendern. Ihr aktuelles Setup führt jedoch dazu, dass stattdessen die Standarddatei index.html zurückgegeben wird.

Ursache der Index.html-Rückgabe

Wie in der Starlette-Dokumentation zu StaticFiles beschrieben:

html - Run in HTML mode. Automatically loads index.html for directories if such file exists.
Nach dem Login kopieren

Lösung

Um dieses Problem zu beheben, haben Sie zwei Möglichkeiten:

1. Mounten Sie StaticFiles in einem anderen Pfad:

Mounten Sie Ihre StaticFiles-Instanz in einem eindeutigen Pfad, z. B. /static. Dadurch wird sichergestellt, dass jeder Pfad, der mit /static beginnt, von der StaticFiles-Anwendung verarbeitet wird.

app.mount('/static', StaticFiles(directory='static'), name='static')
Nach dem Login kopieren

2. Definieren Sie StaticFiles nach Endpunkten:

Wenn Sie StaticFiles dennoch im Stammpfad (/) bereitstellen möchten, definieren Sie die StaticFiles-Instanz, nachdem Sie alle Ihre API-Endpunkte deklariert haben. Dadurch wird sichergestellt, dass die Endpunkte Vorrang vor StaticFiles haben.

@app.get('/')
async def index():
    return FileResponse('static/custom.html')
Nach dem Login kopieren
app.mount('/', StaticFiles(directory='static', html=True), name='static')
Nach dem Login kopieren

html=True Option

Das Argument html=True ermöglicht die einfache Bereitstellung statischer Webinhalte mit einer einzigen Codezeile . Wenn Sie jedoch dynamische HTML-Dateien und zusätzliche API-Endpunkte benötigen, sollten Sie erwägen, Vorlagen zu verwenden und StaticFiles in einem anderen Pfad bereitzustellen, ohne html=True zu verwenden.

Das obige ist der detaillierte Inhalt vonWie stelle ich eine benutzerdefinierte HTML-Datei als FastAPI-Root-Pfad bereit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage