33 lines
957 B
Python
33 lines
957 B
Python
from fastapi import FastAPI, Request
|
|
from fastapi.responses import HTMLResponse
|
|
from fastapi.staticfiles import StaticFiles
|
|
from fastapi.templating import Jinja2Templates
|
|
|
|
from datetime import datetime
|
|
from models.ammeter_usage import AmmeterUsageModel
|
|
|
|
app = FastAPI()
|
|
templates = Jinja2Templates(directory="templates")
|
|
app.mount("/static", StaticFiles(directory="static"), name="static")
|
|
|
|
|
|
# 添加模板过滤器:时间戳转日期显示
|
|
def format_datetime(value):
|
|
try:
|
|
return datetime.fromtimestamp(value / 1000).strftime("%Y-%m-%d %H:%M")
|
|
except:
|
|
return value
|
|
|
|
|
|
# 🔥关键:为 Jinja2 添加过滤器
|
|
templates.env.filters["datetime"] = format_datetime
|
|
|
|
|
|
@app.get("/", response_class=HTMLResponse)
|
|
async def index(request: Request):
|
|
data = await AmmeterUsageModel.get_recent(6462, days=30)
|
|
return templates.TemplateResponse(
|
|
"index.html",
|
|
{"request": request, "room_id": 6462, "data": data},
|
|
)
|