FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 留言列表开发
之前我们分享了FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言,这次我们分享留言列表开发。
列表获取,也需要登录,根据登录用户来获取对应的留言。逻辑梳理如下。
1.判断用户是否登录
2.根据登录用户查询留言列表
3.留言列表中要根据是留言回复,进行列表重组
我们根据逻辑去梳理下对应的crud
def get_message_list(db: Session, userid: int):
return db.query(Message).filter(or_(Message.senduser.id == userid, Message.acceptusers.id == userid,Message.status==0)).all()
我们根据逻辑去开发对应的代码。
@usersRouter.get(path="/messagelist")
async def messagelist(user: UsernameRole = Depends(get_cure_user),
db: Session = Depends(get_db)):
users = get_user_username(db, user.username)
messagelist = get_message_list(db=db, userid=users.id)
message_list = []
mainmessage = []
if len(messagelist) > 0:
for item in messagelist:
if item.pid == "":
messageone = MessageOne(id=item.id,
senduser=get_user(db,item.senduser).username,
acceptusers=get_user(db,item.acceptusers).username,
read=item.read,
sendtime=item.sendtime,
addtime=str(item.addtime),
context=item.context)
mainmessage.append(messageone.id)
all_pid = get_pid_message(db, item.id)
if len(all_pid) > 0:
allpidlist = []
for items in all_pid:
message = MessagePid(id=item.id,
senduser=get_user(db,items.senduser).username,
acceptusers=get_user(db,items.acceptusers).username,
read=items.read,
sendtime=items.sendtime,
addtime=str(items.addtime),
context=items.context,
pid=items.pid)
allpidlist.append(message)
messageone.pid = allpidlist
message_list.append(messageone)
else:
if item.pid not in mainmessage:
message = get_message(db, item.pid)
if message:
all_pid = get_pid_message(db, message.id)
messageone = MessageOne(id=message.id,
senduser=get_user(db,message.senduser).username,
acceptusers=get_user(db,message.acceptusers).username,
read=message.read,
sendtime=message.sendtime,
addtime=str(message.addtime),
context=message.context)
if len(all_pid) > 0:
allpidlist = []
for item in all_pid:
messagepid = MessagePid(id=message.id,
senduser=get_user(db,item.senduser).username,
acceptusers=get_user(db,item.acceptusers).username,
read=item.read,
sendtime=item.sendtime,
addtime=str(item.addtime),
context=item.context, pid=item.pid)
allpidlist.append(messagepid)
messageone.pid = allpidlist
message_list.append(messageone)
return reponse(code=200, message='成功', data=jsonable_encoder(message_list))

FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 留言列表开发的更多相关文章
- FastAPI(六十二)实战开发《在线课程学习系统》需求分析
前言 基础的分享我们已经分享了六十篇,那么我们这次分享开始将用一系列的文章分享实战课程.我们分享的系统是在线学习系统.我们会分成不同的模块进行分享.我们的目的是带着大家去用fastapi去实战一次,开 ...
- FastAPI(七十四)实战开发《在线课程学习系统》接口开发-- 删除留言
之前文章FastAPI(七十三)实战开发<在线课程学习系统>接口开发-- 回复留言,那么我们这次分享删除留言接口的开发 可以对留言进行删除,这里的删除,我们使用的是逻辑的删除,不是物理删除 ...
- FastAPI(七十)实战开发《在线课程学习系统》接口开发--留言功能开发
在之前的文章:FastAPI(六十九)实战开发<在线课程学习系统>接口开发--修改密码,这次分享留言功能开发 我们能梳理下对应的逻辑 1.校验用户是否登录 2.校验留言的用户是否存在 3. ...
- FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 回复留言
之前文章分享FastAPI(七十二)实战开发<在线课程学习系统>接口开发-- 留言列表开发,这次我们分享如何回复留言 按照惯例,我们还是去分析这里面的逻辑. 1.判断用户是否登录 2.用户 ...
- FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言
之前FastAPI(七十)实战开发<在线课程学习系统>接口开发--留言功能开发分享了留言开发,这次我们分享查看留言 梳理这里的逻辑,这个接口要依赖登录. 1.判断用户是否登录 2.判断对应 ...
- FastAPI(六十九)实战开发《在线课程学习系统》接口开发--修改密码
之前我们分享了FastAPI(六十八)实战开发<在线课程学习系统>接口开发--用户 个人信息接口开发.这次我们去分享实战开发<在线课程学习系统>接口开发--修改密码 我们梳理一 ...
- FastAPI(六十八)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发
在之前的文章:FastAPI(六十七)实战开发<在线课程学习系统>接口开发--用户登陆接口开发,今天实战:用户 个人信息接口开发. 在开发个人信息接口的时候,我们要注意了,因为我们不一样的 ...
- FastAPI(六十三)实战开发《在线课程学习系统》梳理系统需要接口
针对上一篇FastAPI(六十二)实战开发<在线课程学习系统>需求分析需求的功能,我们对需要的接口进行梳理,大概的规划出来现有的接口,作为我们第一版的接口的设计出版,然后我们根据设计的接口 ...
- FastAPI(六十七)实战开发《在线课程学习系统》接口开发--用户登陆接口开发
接上一篇文章FastAPI(六十六)实战开发<在线课程学习系统>接口开发--用户注册接口开发.这次我们分享实际开发--用户登陆接口开发. 我们先来梳理下逻辑 1.查询用户是否存在2.校验密 ...
随机推荐
- php 23种设计模型 - 适配器模式
适配器模式(Adapter) 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁.这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能. 这种模式涉及到一个单一的类, ...
- 大作业:开发一个精美的 Web 网站
大作业:开发一个精美的 Web 网站 实验目的: 掌握一个完整精美网页开发的基本方法 实验要求: 1.开发一个 Web 站点,至少有 3 个以上的页面: 2.采用 CSS 和 HTML 文件分开方法: ...
- 29 面向对象编程 static 关键字
补充:static 代码 // static public class Student{ private static int age; // 静态的变量 多线程 private double sco ...
- Python入门随记(1)
1.IDE Interactive Development Enironment,交互式开发环境 2.AI artificial intelligence 3.Python是一种格式严明(严格缩进)的 ...
- 不带头结点的单链表(基于c语言)
本篇文章的代码大多使用无头结点的单链表: 相关定义: #include <stdio.h> #include <stdlib.h> #include <assert.h& ...
- Mybatis传递参数的几种方式
使用Map传递 优点:直接在sql中取出key即可 缺点:适用于小项目,不符合大公司规范 对象传递参数 优点:符合标准规范 缺点:麻烦 3.只有一个基本类型参数的情况下,直接在sql中取中 4.多个参 ...
- Superset安装部署操作
目录 1.安装Miniconda 1.下载Miniconda 2.安装 3.开启一个新的shell窗口 4.设置新窗口不自动开启conda 2.创建Python3.7环境 1.配置国内镜像 2.常用命 ...
- java对xml文件的操作
xml文件格式(示例): <?xml version="1.0" encoding="UTF-8"?> <root> <Funct ...
- Windows 如何打开 .md 文件
•问题 最近在学习[C++|黑马程序员],对于课堂笔记中的 .md 文档无从下手,要是直接通过 Chrome 打开排版又很乱,且不能正常显示URL中的内容: 这可如何是好??? •解决方案 1. 打开 ...
- activemq 使用经验
activemq 使用经验 ActiveMQ 是apache的一个开源JMS服务器,不仅具备标准JMS的功能,还有很多额外的功能.公司里引入ActiveMQ后,ActiveMQ成里我们公司业 务系 ...