A jinja2 view template helping function for FastAPI.
Features:
- Simply setting and use function to return Jinja2Templates
pip install fastapi-view
-
Jinja2 templates directory setup.
import os from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates from fastapi_view import view from fastapi_view.middleware import ViewRequestMiddleware @asynccontextmanager async def lifespan(app: FastAPI): view.initialize(Jinja2Templates(directory="./assets/views"), use_vite=True) yield app = FastAPI(title="Test app", lifespan=lifespan)
-
Use
view()
to render Jinja2 *.html files.@app.get("/") def index(): # index.html in ./assets/views return view("index", {"foo": "bar"})
-
Use
inertia.render()
to render *.vue files.from fastapi_view import inertia @app.get("/inertia/page") def inertia_index(): # Index.vue in ./assets/js/Pages/views return inertia.render("Index", props={"foo": "bar"})
-
Find more examples in example directory.