FastAPI(八十)实战开发《在线课程学习系统》接口开发-- 课程列表
前言
我们上一次分享了实战FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 退出课程,这次我们分享课程列表。
正文
一、查询所有课程列表
逻辑就是返回所有课程
那么对应的crud
def getallcourse(db:Session):
return db.query(Course).filter(Course.status == True).all()
接口的实现代码
@courseRouter.get("/list")
async def list(db:Session=Depends(get_db)):
allcouese=getallcourse(db)
all_course=[]
if len(allcouese)>0:
for item in allcouese:
coursedetail = CousesDetail(id=item.id,
name=item.name,
icon=item.icon, desc=item.desc, catalog=item.catalog,
onsale=item.onsale, owner=get_user(db, item.owner).username,
likenum=item.likenum)
all_course.append(coursedetail)
return reponse(code=200,message='成功',data=jsonable_encoder(all_course))
这个接口其实实现的很简单。
课程列表除了返回所有的课程,如果是学生还应该返回自己的课程列表。
那么我们看下如何实现
对应的crud为
def get_student_all(db: Session,user:int):
return db.query(Studentcourse).filter(Studentcourse.students == user,
Studentcourse.status == False).all()
对应的接口是
@courseRouter.get("/courselist")
async def courselist(user: UsernameRole = Depends(get_cure_user),db:Session=Depends(get_db)):
if user.role=="教师":
return reponse(code=200, message='成功', data='')
users=get_user_username(db,user.username)
allconut=get_student_all(db,users.id)
all_course = []
if len(allconut) > 0:
for item in allconut:
one=db_get_course_id(db,item.course)
coursedetail = CousesDetail(id=one.id,
name=one.name,
icon=one.icon, desc=one.desc, catalog=one.catalog,
onsale=one.onsale, owner=get_user(db, one.owner).username,
likenum=one.likenum)
all_course.append(coursedetail)
return reponse(code=200, message='成功', data=jsonable_encoder(all_course))
其实还可以去查询老师所有的上架的课程的列表。
这里不再做代码罗列,很简单的。
系列实战课程
FastAPI(六十一)实战开发《在线课程学习系统》需求分析
FastAPI(六十二)实战开发《在线课程学习系统》梳理系统需要接口
FastAPI(六十三)实战开发《在线课程学习系统》设计数据库以及连接配置
FastAPI(六十四)实战开发《在线课程学习系统》基础架构的搭建
FastAPI(六十五)实战开发《在线课程学习系统》接口开发--用户注册接口开发
FastAPI(六十六)实战开发《在线课程学习系统》接口开发--用户登陆接口开发
FastAPI(六十七)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发
FastAPI(六十八)实战开发《在线课程学习系统》接口开发--修改密码
FastAPI(六十九)实战开发《在线课程学习系统》接口开发--留言功能开发
FastAPI(七十)实战开发《在线课程学习系统》接口开发-- 查看留言
FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言
FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 回复留言
FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 删除留言
FastAPI(七十四)实战开发《在线课程学习系统》接口开发-- 创建课程
FastAPI(七十五)实战开发《在线课程学习系统》接口开发-- 课程详情
FastAPI(七十六)实战开发《在线课程学习系统》接口开发-- 课程编辑和查看评论
FastAPI(七十七)实战开发《在线课程学习系统》接口开发-- 评论
FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 加入课程
FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 退出课程
后记
发现问题,解决问题。遇到问题,慢慢解决问题即可。
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识
如果你有问题可以留言或者加我微信:952943386。
2021,一起牛转钱坤,一起牛逼。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~
相关文章
- 为什么使用 golang http包 会把 linux 句柄打满?
- GO 语言 Web 开发实战一
- calc(100vh - 50px)失效
- Docker - 搭建部署(Nginx+Mysql+Redis)应用服务和解决MacDocker0问题
- 安思疆发布并量产新一代消费级全固态dToF激光雷达 创新技术实现机器人导航避障二合一
- TVOD.CN TVOD,NVOD,PVOD 视频点播技术,商业模式的讲解(TVOD.CN)
- 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v8.4版已发布
- 腾讯面试官:工作两年了,这么简单的cisp题你都不会?
- 每日开源 | 告别造轮子,试试这个单点登录框架...
- JavaWeb day4 Web概述Http协议
- 解决方案,关于电子商务
- ActiveMQ 常见集群模式
- windows下使用用wrk进行压力测试
- PaLM中使用的激活函数:SwiGLU
- 高性能消息队列中间件MQ
- 高性能消息队列中间件MQ_part2
- 苹果Airplay2学习
- 《SOC芯片研究框架》深度科普,发展趋势、技术特点、产业链一文看懂
- 【Airplay_BCT】Bonjour conformance tests苹果IOT
- 【Airplay_BCT】Bonjour 和本地链接、域名和 DNS