来自queryset(查询集)的单个vs来自乌龟的orm(快速api)

2024-05-16 09:49:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我是FastAPI的新手,我正在尝试创建一个API来返回数据库中的学生

下面的代码似乎有效

@app.get("/{id}")
async def get_student(id:int):
    return await stud_pydantic.from_queryset_single(Student.get(id=id))

这似乎也能奏效

@app.get("/{id}")
async def get_student(id:int):
    stud_obj = Student.get(id=id)
    return await stud_pydantic.from_tortoise_orm(stud_obj)

但是,这不起作用

@app.get("/{id}")
async def get_student(id:int):
    stud_obj = Student.get(id=id)
    return await stud_pydantic.from_queryset_single(stud_obj)

但是,两者基本上都试图返回一个student对象。正当那么,有什么区别呢。 似乎我不明白从“queryset”到“single”和“Turtoise”的方法有什么不同

这是我的学生模型

class Student(models.Model):
    name = fields.CharField(50,unique=True)
    age = fields.IntField()
    id = fields.IntField(pk=True)

stud_pydantic = pydantic_model_creator(Student,name="student")
studRO_pydantic = pydantic_model_creator(Student,name="studentRO",exclude_readonly=True)

提前谢谢


Tags: fromidobjappgetasyncreturndef
1条回答
网友
1楼 · 发布于 2024-05-16 09:49:58

我认为您需要等待从数据库获取数据的过程

@app.get("/{id}")
async def get_student(id:int):
    stud_obj = await Student.get(id=id)
    return await stud_pydantic.from_queryset_single(stud_obj)

相关问题 更多 >