当前位置: 首页 > news >正文

行业门户网站模板硬件开发设计

行业门户网站模板,硬件开发设计,网络推广营销工具,面点培训学校哪里有源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 在之前的文章:FastAPI(六十九)实战开发《在线课程学习系统》接口开发--修改密码,这次分享留言功能开发 我们梳理…

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统"

在之前的文章:FastAPI(六十九)实战开发《在线课程学习系统》接口开发--修改密码,这次分享留言功能开发

我们梳理下对应的逻辑

1.校验用户是否登录

2.校验留言的用户是否存在

3.校验用户是否和留言的用户一致

4.校验留言长度是否符合要求

5.增加留言

从这里开始是留言相关的接口,因此我新建了以下几个文件来单独维护留言相关接口逻辑:

首先,看下对应的pydantic参数模型

"""
-*- encoding=utf-8 -*-
Time: 2024/7/23 15:31
Author: lc
Email: 15101006331@163.com
File: message_method.py
"""
from pydantic import BaseModel, Fieldclass MessageContent(BaseModel):accept_uid: int  # 接收留言用户idcontent: str = Field(min_length=5, max_length=500)

接下来实现接口逻辑,message_method.py

"""
-*- encoding=utf-8 -*-
Time: 2024/7/23 15:31
Author: lc
Email: 15101006331@163.com
File: message_method.py
"""
import traceback
from datetime import datetime
from sqlalchemy.orm import Sessionfrom methods.user_method import get_by_username, get_by_uid
from models.message_schemas import MessageContent
from models.models import Message
from models.user_schema import UsernameRole
from common.log import logger
from common.json_tools import responsedef add_message_method(message_content: MessageContent, user: UsernameRole, db: Session):"""留言"""logger.info(f"用户:{user.username}来留言了")accept_user = get_by_uid(db, message_content.accept_uid)if not accept_user:return response(code=100503, message="接收留言的用户不存在")_user = get_by_username(db, user.username)if accept_user.id == _user.id:return response(code=100501, message="自己不能给自己留言")current_time = datetime.strftime(datetime.now(), "%Y-%m_%d %H:%M:%S")try:message = Message(send_user=_user.id,accept_user=accept_user.id,context=message_content.content,send_time=current_time,add_time=current_time)db.add(message)db.commit()db.refresh(message)except:logger.warning(f"method add_message_method error:{traceback.format_exc()}")return response(code=100502, message="留言失败")logger.info(f"用户:{user.username}留言成功")return response()

在message.py中实现接口

"""
-*- encoding=utf-8 -*-
Time: 2024/7/23 15:31
Author: lc
Email: 15101006331@163.com
File: message_router.py
"""
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Sessionfrom middlewares.mysql.database import create_db
from models.message_schema import *
from models.user_schema import UsernameRole
from methods.user_method import get_current_user
from methods.message_method import add_message_methodmessage_router = APIRouter()@message_router.post("/", summary="留言")
async def add_message(message_content: MessageContent,user: UsernameRole = Depends(get_current_user),db: Session = Depends(create_db)
):return add_message_method(message_content, user, db)

最后将留言相关路由注册到main.py中的app下

from routers.message import message_routerapp.include_router(message_router, prefix="/message", tags=["messages"])

测试:

至此,留言接口完成。

http://www.yayakq.cn/news/734947/

相关文章:

  • 邳州建设银行招聘网站郑州市装修公司哪家好
  • 茂县建设局网站挖掘关键词工具
  • 公司网站开发流程图wordpress固定链接设置404
  • 做网站什么前端框架方便智能网站建设维护
  • 印刷 网站源码页面模板 wordpress
  • 网站开发合同是否要交印花税wordpress linux 权限
  • 网站建设费用要摊销嘛安卓优化大师app
  • 在征婚网站上认识做期货山东seo优化
  • 什么人需要网站建设西宁做网站公司电话
  • 工业园区门户网站建设方案济南的互联网公司
  • 给分管领导网站建设情况汇报怎么写世界杯观看入口
  • 如何查看网站开发者安卓移动端开发
  • 闵行 网站建设公司今天昆明刚刚发生的新闻
  • 常德做网站的公司莱州网站建设多少钱
  • 动态ip怎么做网站你喜欢的公司网站
  • wordpress本地上传到网站做网站用什么代码
  • 地方门户网站赚钱中国城乡建设部网站首页
  • 电商网站开发 上海文化建设的名言警句
  • 全包胶衣网站青岛网站建设seo
  • 嘉峪关做网站网站建设语言什么语言
  • 咸阳市城市建设管理局网站六安seo网站推广报价
  • 青岛东橙网站建设重庆公司排行榜
  • 注册网站平台wordpress三栏主题
  • 网站建设公司 腾佳wordpress影视源码
  • 搭建网站 网页湖北建设信息网官网
  • 北京华兴森茂印刷网站建设项目想做网站怎么做
  • wordpress直接访问站点品牌宣传推广方案
  • 西安免费建网站制作淄博高效网站建设找哪家
  • wordpress本地网站网站建设属于哪种职位
  • 个性化企业网站制作公司宁夏成城建设集团网站