Fastapi的基础增删改查
增加
根据你的字段内容,通过调用Fastapi的增加方法,实现表格内容的增加。
@user_router.post("/add_user") async def add_user(user: CreateUser): await User.create(**dict(user)) return { 'code':200, 'msg':'success' }class CreateUser(BaseModel): username:str=Field( ..., title="用户名", min_length=1, max_length=20, description="用户名必须在1到20个字符之间", example="admin" ) email:str=Field( ..., title="邮箱", description="邮箱必须在1到50个字符之间", example="123@qq.com" ) phone:str=Field( None, title="电话", min_length=11, max_length=11, description="电话必须为11位数字", example="13800000000" ) is_active:bool=Field( True, title="是否激活", description="是否激活", example=True )通过下面代码中的请求体的帮助,请求体跟模型字段一致,然后调用上面代码中的Fastapi的增加的方法,实现数据的添加。
编辑
根据你的字段内容,通过调用Fastapi的编辑方法,实现表格内容的编辑。在编辑的时候需要判断一下你想编辑的商品是否存在。
@user_router.put("/update_user/{id}") async def update_user(user: UpdateUser, id: int): data = await User.get_or_none(id=id) if data is None: return { 'code':400, 'msg':'用户不存在' } user_dict = user.dict(exclude_unset=True) await User.filter(id=id).update(**user_dict) return { 'code':200, 'msg':'success' }class UpdateUser(BaseModel): username:str=Field( None, title="用户名", min_length=1, max_length=20, description="用户名必须在1到20个字符之间", example="admin" ) email:str=Field( None, title="邮箱", description="邮箱必须在1到50个字符之间", example="123@qq.com" ) phone:str=Field( None, title="电话", min_length=11, max_length=11, description="电话必须为11位数字", example="13800000000" ) is_active:bool=Field( None, title="是否激活", description="是否激活", example=True )通过下面代码中的请求体的帮助,请求体跟模型字段一致,然后调用上面代码中的Fastapi的编辑的方法,实现数据的更新。
删除
获取你想删除的数据的id,执行删除的命令,然后删除数据,这里的话是物理删除。在删除的时候既可以判断一下删除的数据是否存在,然后执行删除,也可以直接删除想删的数据。
@user_router.delete("/delete_user/{id}") async def delete_user(id: int): data = await User.get_or_none(id=id) if data is None: return { 'code': 400, 'msg': '用户不存在' } await data.delete() # await User.filter(id=id).delete() return { 'code': 200, 'msg': 'success' }删除的时候不需要请求体,但是需要获取数据的id。
