使用Tortoise-ORM和FastAPI构建评论系统
title: 使用Tortoise-ORM和FastAPI构建评论系统
date: 2025/04/25 21:37:36
updated: 2025/04/25 21:37:36
author: cmdragon
excerpt:
在models.py中定义了Comment模型,包含id、content、created_at、updated_at字段,并与User和Article模型建立外键关系。schemas.py中定义了CommentBase、CommentCreate、CommentUpdate和CommentResponse等Pydantic模型,用于数据验证和响应。路由层实现了创建、获取和删除评论的API,使用get_or_none处理不存在的评论,并捕获异常。测试接口通过requests进行创建和异常测试。常见报错包括外键约束失败、验证错误和事件循环未关闭,需检查外键值、请求体匹配和正确关闭事件循环。
categories:
- 后端开发
- FastAPI
tags:
- Tortoise-ORM
- Pydantic
- FastAPI
- 评论系统
- 数据库模型
- 数据验证
- 接口测试


扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长
探索数千个预构建的 AI 应用,开启你的下一个伟大创意:https://tools.cmdragon.cn/
一、Tortoise-ORM模型定义
我们首先在models.py中定义评论模型:
from tortoise.models import Model
from tortoise import fieldsclass Comment(Model):id = fields.IntField(pk=True)content = fields.TextField()created_at = fields.DatetimeField(auto_now_add=True)updated_at = fields.DatetimeField(auto_now=True)# 外键关系user = fields.ForeignKeyField('models.User', related_name='comments')article = fields.ForeignKeyField('models.Article', related_name='comments')class Meta:table = "comments"indexes = ("created_at", "user_id", "article_id")def __str__(self):return f"Comment {self.id} by