(16)ORM响应页面数据
1. 响应页面数据
- 我们先创建个模版文件:templates/index.html
- api/students.py新增个接口来响应
from fastapi import APIRouter
from models import *
# 导入Jinja2Templates用于模板渲染
from starlette.templating import Jinja2Templates
# 导入Request用于处理HTTP请求
from fastapi import Request
student_api = APIRouter()
templates = Jinja2Templates(directory="templates")
@student_api.get('/index.html')
async def getAllStudent(request: Request):
students = await Student.all()
print(students)
# 返回一个基于模板的响应,用于渲染index.html页面
return templates.TemplateResponse('index.html', {'request': request, 'students': students})
- templates/index.html我们这样写:
Title
{% for student in students %}
- 姓名:{{ student.name }} 学号:{{ student.sno }}
{% endfor %}
测试看下:
不过,这个页面有点丑,我们想做个漂亮的页面。
2. 利用Bootstrap做一个漂亮的网页
- 首先我们要导入Bootstrap,进入Bootstrap中文网
- 引入一个比较喜欢的表格
- 补充并修改部分index.html代码
Title
学生信息
学生学号
学生姓名
学生班级
{% for student in students %}
{{ student.sno }}
{{ student.name }}
{{ student.clas_id }}
{% endfor %}
- 测试看下