Erstellen Sie ein templates-Objekt, das Sie später wiederverwenden können.
Deklarieren Sie einen Request-Parameter in der Pfadoperation, welcher ein Template zurückgibt.
Verwenden Sie die von Ihnen erstellten templates, um eine TemplateResponse zu rendern und zurückzugeben, übergeben Sie den Namen des Templates, das Requestobjekt und ein „Kontext“-Dictionary mit Schlüssel-Wert-Paaren, die innerhalb des Jinja2-Templates verwendet werden sollen.
Vor FastAPI 0.108.0 und Starlette 0.29.0 war name der erste Parameter.
Außerdem wurde in früheren Versionen das request-Objekt als Teil der Schlüssel-Wert-Paare im Kontext für Jinja2 übergeben.
"Tipp"
Durch die Deklaration von response_class=HTMLResponse kann die Dokumentationsoberfläche erkennen, dass die Response HTML sein wird.
"Technische Details"
Sie können auch from starlette.templating import Jinja2Templates verwenden.
FastAPI bietet dasselbe starlette.templating auch via fastapi.templating an, als Annehmlichkeit für Sie, den Entwickler. Es kommt aber direkt von Starlette. Das Gleiche gilt für Request und StaticFiles.
Sie können url_for() auch innerhalb des Templates verwenden, es nimmt als Argumente dieselben Argumente, die von Ihrer Pfadoperation-Funktion verwendet werden.
Der Abschnitt mit:
<a href="{{url_for('read_item',id=id)}}">
... generiert also einen Link zu derselben URL, welche von der Pfadoperation-Funktionread_item(id=id) gehandhabt werden würde.
Mit beispielsweise der ID 42 würde dies Folgendes ergeben: