前言 基础的分享我们已经分享了六十篇,那么我们这次分享开始将用一系列的文章分享实战课程.我们分享的系统是在线学习系统.我们会分成不同的模块进行分享.我们的目的是带着大家去用fastapi去实战一次,开发一些功能模块,锻炼大家的项目实战的能力.实战大概分为:一:需求分析,二.接口设计,三.数据库设计,四.整体框架,五.接口开发,六.接口测试,七.部署. 我们针对<在线课程学习系统>系统,进行需求分析. 针对实战,开发一个课程学习系统,主要满足用户的注册登录,查看,开课,选课,课程评论点赞,用户可…
之前我们分享了FastAPI(六十八)实战开发<在线课程学习系统>接口开发--用户 个人信息接口开发.这次我们去分享实战开发<在线课程学习系统>接口开发--修改密码 我们梳理一下这里的逻辑 1.需要校验登录用户,根据登录用户,我们去校验密码 2.校验成功,我们判断新密码是否符合要求 3.存储新的密码 4.删除对应的用户的token以及错误密码存储的数据 那么开始代码实现,对应的修改密码的pydantic. from pydantic import BaseModel class U…
在之前的文章:FastAPI(六十七)实战开发<在线课程学习系统>接口开发--用户登陆接口开发,今天实战:用户 个人信息接口开发. 在开发个人信息接口的时候,我们要注意了,因为我们不一样的用户个人信息不一样,而且需要依赖登录,那么我们需要根据用户是否登录来返回用户信息,根据用户的角色来返回对应的信息, def get_role_name(db:Session,id:id): return db.query(Role).filter(Role.id == id).first()  校验下登录.因…
针对上一篇FastAPI(六十二)实战开发<在线课程学习系统>需求分析需求的功能,我们对需要的接口进行梳理,大概的规划出来现有的接口,作为我们第一版的接口的设计出版,然后我们根据设计的接口. 2.1用户注册接口 路径:/user/register 请求方式:POST 请求格式:json 是否依赖登陆:否 参数: 参数名称 参数含义 参数是否必须 参数类型 username 用户名 8-16位 是 str password 密码,长度8-16位,md5加密 是 str role 类型,学生或者老…
接上一篇文章FastAPI(六十六)实战开发<在线课程学习系统>接口开发--用户注册接口开发.这次我们分享实际开发--用户登陆接口开发. 我们先来梳理下逻辑 1.查询用户是否存在2.校验密码是否正确3.密码校验失败记录失败次数4.失败次数大于10次,当天不能登陆5.密码校验通过产生对应的token返回 接着我们去设计pydantic,用于校验用户登陆 class UserLogin(UserBase): password: str 这里我们继承的是之前的UserBase. 对应操作数据库的cu…
在之前的文章:FastAPI(六十九)实战开发<在线课程学习系统>接口开发--修改密码,这次分享留言功能开发 我们能梳理下对应的逻辑 1.校验用户是否登录 2.校验留言的用户是否存在 3.校验用户是否和留言的用户一致 4.校验留言长度是否符合要求 5.增加留言         那么看下对应的需要新增的pydantic. class MessageConent(BaseModel): id:int connect:str   对于crud,这次没有需要新增的,我们用的都是之前的代码中已经有的,所…
之前文章FastAPI(七十三)实战开发<在线课程学习系统>接口开发-- 回复留言,那么我们这次分享删除留言接口的开发 可以对留言进行删除,这里的删除,我们使用的是逻辑的删除,不是物理删除 我们来梳理下这里的逻辑 1.用户需要登录 2.请求携带留言的id 3.判断删除留言是否存在 4.存在则删除 那么我们看下应该如何去实现呢 @usersRouter.get(path='/deletemessage/{id}') async def deletemessage(id: int, db: Ses…
之前我们分享了FastAPI(七十一)实战开发<在线课程学习系统>接口开发-- 查看留言,这次我们分享留言列表开发. 列表获取,也需要登录,根据登录用户来获取对应的留言.逻辑梳理如下. 1.判断用户是否登录 2.根据登录用户查询留言列表 3.留言列表中要根据是留言回复,进行列表重组 我们根据逻辑去梳理下对应的crud def get_message_list(db: Session, userid: int): return db.query(Message).filter(or_(Messa…
之前文章分享FastAPI(七十二)实战开发<在线课程学习系统>接口开发-- 留言列表开发,这次我们分享如何回复留言 按照惯例,我们还是去分析这里面的逻辑. 1.判断用户是否登录 2.用户登录判断回复的是否存在 3.存在回复    我们对应的pydantic对象 class RebackMessConnet(MessageConent): rebackid: int     对应的crud def db_creat_rebackmessage(db: Session, reback: Reba…
之前FastAPI(七十)实战开发<在线课程学习系统>接口开发--留言功能开发分享了留言开发,这次我们分享查看留言 梳理这里的逻辑,这个接口要依赖登录. 1.判断用户是否登录 2.判断对应id是否存在,不存在返回对应的错误 3.判断是否是当前用户的留言,或者接受的方是自己 4.返回内容后,同时变成已读. 5.如果读了且回复了,要带回复的内容 梳理后发现,之前在接口设计的时候,有些欠缺,查看留言,是查看单个的留言,查看留言后,对应的留言变成已读状态.那么我们这个都需要传递一个参数,这个参数应该是…