源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统"
之前文章FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 回复留言,那么我们这次分享删除留言接口的开发
可以对留言进行删除,这里的删除,我们使用的是逻辑的删除,不是物理删除
我们来梳理下这里的逻辑
1.判断用户是否登录
2.请求携带留言的id
3.判断删除的留言是否存在
4,存在则删除
如何实现呢,首先在message_method.py中实现具体逻辑,也很简单
def delete_msg(msg_id: int, user: UsernameRole, db: Session):
"""删除留言"""
db_msg = get_msg_by_id(db, msg_id)
if not db_msg:
return response(code=100901, message="删除留言不存在")
db_user = get_by_username(db, user.username)
if db_user.id != db_msg.send_user:
return response(code=100902, message="权限不足")
try:
db_msg.status = 1
db.commit()
db.refresh(db_msg)
except:
logger.warning(f"method delete_msg error: {traceback.format_exc()}")
response(code=100903, message="删除失败")
return response()
然后实现接口api:message.py
@message_router.delete("/", summary="删除留言")
def del_msg(
msg_id: int,
user: UsernameRole = Depends(get_current_user),
db: Session = Depends(create_db)
):
return delete_msg(msg_id, user, db)
测试