| from fastapi import FastAPI |
| from starlette.middleware.sessions import SessionMiddleware |
| from starlette.requests import Request |
| from starlette.responses import HTMLResponse |
| from starlette.templating import Jinja2Templates |
|
|
| from app.core.config import settings |
| from app.api.v1.api import api_router |
|
|
| app = FastAPI(title=settings.PROJECT_NAME) |
|
|
| |
| |
| app.add_middleware( |
| SessionMiddleware, |
| secret_key=settings.SECRET_KEY, |
| https_only=False |
| ) |
|
|
| |
| app.include_router(api_router) |
|
|
| |
| templates = Jinja2Templates(directory="app/templates") |
|
|
| @app.get("/", response_class=HTMLResponse) |
| async def root(request: Request): |
| user = request.session.get("user") |
| return templates.TemplateResponse("index.html", {"request": request, "user": user}) |
|
|
| if __name__ == "__main__": |
| import uvicorn |
| uvicorn.run("app.main:app", host="0.0.0.0", port=8000, reload=True) |