29 lines
886 B
Python
29 lines
886 B
Python
from fastapi import FastAPI, Request
|
|
from fastapi.responses import HTMLResponse
|
|
from jinja2 import Environment, FileSystemLoader, select_autoescape
|
|
|
|
from app.api.v1 import router as api_v1_router
|
|
|
|
# Inicjalizacja Jinja2
|
|
templates_env = Environment(
|
|
loader=FileSystemLoader("app/templates"),
|
|
autoescape=select_autoescape(["html", "xml"]),
|
|
)
|
|
|
|
app = FastAPI(title="Karl", version="0.1.0")
|
|
|
|
# Rejestracja routera API pod /api/v1
|
|
app.include_router(api_v1_router, prefix="/api/v1", tags=["v1"])
|
|
|
|
|
|
# Przykładowy endpoint HTML
|
|
@app.get("/", response_class=HTMLResponse)
|
|
async def index(request: Request) -> HTMLResponse:
|
|
template = templates_env.get_template("index.html")
|
|
html = template.render(title="Strona główna", request=request)
|
|
return HTMLResponse(content=html)
|
|
|
|
|
|
def run() -> None:
|
|
import uvicorn
|
|
uvicorn.run("app.main:app", host="127.0.0.1", port=8000, reload=True)
|