40 lines
764 B
Python
40 lines
764 B
Python
from fastapi import Request
|
|
from fastapi.templating import Jinja2Templates
|
|
from typing import Any
|
|
import config
|
|
|
|
templates = Jinja2Templates(directory=config.TEMPLATES_DIR)
|
|
|
|
|
|
def getUrl(name: str, **path_params: Any):
|
|
from api import app
|
|
|
|
try:
|
|
url = app.url_path_for(name, **path_params)
|
|
except Exception:
|
|
url = app.url_path_for(name)
|
|
return url
|
|
|
|
|
|
async def render(
|
|
request: Request,
|
|
):
|
|
context = {
|
|
"request": request,
|
|
"content": {"app_secret": config.APP_SECRET},
|
|
}
|
|
|
|
fileName = f"{request.scope['path']}/index.html"
|
|
|
|
response = templates.TemplateResponse(fileName, context)
|
|
|
|
return response
|
|
|
|
|
|
def_list = [
|
|
getUrl,
|
|
]
|
|
|
|
for def_ in def_list:
|
|
templates.env.globals[def_.__name__] = def_
|