Merge pull request #72 from magisk317/fix/template-response-signature

Fix template rendering with Starlette 1.0
This commit is contained in:
演变
2026-03-23 18:24:32 +08:00
committed by GitHub
+9 -7
View File
@@ -108,8 +108,9 @@ def create_app() -> FastAPI:
async def login_page(request: Request, next: Optional[str] = "/"): async def login_page(request: Request, next: Optional[str] = "/"):
"""登录页面""" """登录页面"""
return templates.TemplateResponse( return templates.TemplateResponse(
request,
"login.html", "login.html",
{"request": request, "error": "", "next": next or "/"} {"error": "", "next": next or "/"}
) )
@app.post("/login") @app.post("/login")
@@ -118,8 +119,9 @@ def create_app() -> FastAPI:
expected = get_settings().webui_access_password.get_secret_value() expected = get_settings().webui_access_password.get_secret_value()
if not secrets.compare_digest(password, expected): if not secrets.compare_digest(password, expected):
return templates.TemplateResponse( return templates.TemplateResponse(
request,
"login.html", "login.html",
{"request": request, "error": "密码错误", "next": next or "/"}, {"error": "密码错误", "next": next or "/"},
status_code=401 status_code=401
) )
@@ -139,33 +141,33 @@ def create_app() -> FastAPI:
"""首页 - 注册页面""" """首页 - 注册页面"""
if not _is_authenticated(request): if not _is_authenticated(request):
return _redirect_to_login(request) return _redirect_to_login(request)
return templates.TemplateResponse("index.html", {"request": request}) return templates.TemplateResponse(request, "index.html")
@app.get("/accounts", response_class=HTMLResponse) @app.get("/accounts", response_class=HTMLResponse)
async def accounts_page(request: Request): async def accounts_page(request: Request):
"""账号管理页面""" """账号管理页面"""
if not _is_authenticated(request): if not _is_authenticated(request):
return _redirect_to_login(request) return _redirect_to_login(request)
return templates.TemplateResponse("accounts.html", {"request": request}) return templates.TemplateResponse(request, "accounts.html")
@app.get("/email-services", response_class=HTMLResponse) @app.get("/email-services", response_class=HTMLResponse)
async def email_services_page(request: Request): async def email_services_page(request: Request):
"""邮箱服务管理页面""" """邮箱服务管理页面"""
if not _is_authenticated(request): if not _is_authenticated(request):
return _redirect_to_login(request) return _redirect_to_login(request)
return templates.TemplateResponse("email_services.html", {"request": request}) return templates.TemplateResponse(request, "email_services.html")
@app.get("/settings", response_class=HTMLResponse) @app.get("/settings", response_class=HTMLResponse)
async def settings_page(request: Request): async def settings_page(request: Request):
"""设置页面""" """设置页面"""
if not _is_authenticated(request): if not _is_authenticated(request):
return _redirect_to_login(request) return _redirect_to_login(request)
return templates.TemplateResponse("settings.html", {"request": request}) return templates.TemplateResponse(request, "settings.html")
@app.get("/payment", response_class=HTMLResponse) @app.get("/payment", response_class=HTMLResponse)
async def payment_page(request: Request): async def payment_page(request: Request):
"""支付页面""" """支付页面"""
return templates.TemplateResponse("payment.html", {"request": request}) return templates.TemplateResponse(request, "payment.html")
@app.on_event("startup") @app.on_event("startup")
async def startup_event(): async def startup_event():