代码拉取完成,页面将自动刷新
import os
from pathlib import Path
import pandas as pd
import uvicorn
from fastapi import FastAPI
# 导入Request上下文对象,用来在前后台之间传递参数
from starlette.requests import Request
# 导入jinja2模板引擎对象,用于后续使用
from starlette.templating import Jinja2Templates
app = FastAPI()
# 实例化一个模板引擎对象,指定模板所在路径
templates = Jinja2Templates(directory="templates")
data_path = os.path.abspath(Path("data"))
# 获取文件路径
file_path = os.path.join(data_path, 'learning.xlsx')
# 在视图函数中传入request对象,用于在模板对象中传递上下文(同时接收路径参数info,将其传递到上下文中)
@app.get("/", summary="这是一个模板渲染示例")
async def index(request:Request):
# 加载excel数据
result = pd.read_excel(file_path)
# 将excel数据转化为JSON对象
info = result.to_dict("records")
# 返回一个模板对象,同时使用上下文中的数据对模板进行渲染
return templates.TemplateResponse(name="index.html", context={"request":request, "info":info})
if __name__ == "__main__":
uvicorn.run("main:app", reload=True)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。