使用Tortoise-ORM和FastAPI构建评论系统

thbcm阅读(178)

excerpt:

在models.py中定义了Comment模型,包含id、content、created_at、updated_at字段,并与User和Article模型建立外键关系。schemas.py中定义了CommentBase、CommentCreate、CommentUpdate和CommentResponse等Pydantic模型,用于数据验证和响应。路由层实现了创建、获取和删除评论的API,使用get_or_none处理不存在的评论,并捕获异常。测试接口通过requests进行创建和异常测试。常见报错包括外键约束失败、验证错误和事件循环未关闭,需检查外键值、请求体匹配和正确关闭事件循环。

[flask]自定义请求日志

thbcm阅读(155)

下面代码定义了两个JSON日志格式化器,
JsonFormatter 的日志格式是给普通代码内使用的,会记录调用函数、调用文件等信息,
AccessLogFormatter的日志格式用于记录请求日志,记录请求路径、响应状态码、响应时间等信息。

dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径

thbcm阅读(172)

这个提案的背景是我有很多个应用准备发布给到用户端上,如果这么多应用都走独立发布,自然会让用户的 C 盘充满重复的文件。如果是将 dotnet 运行时交给的是 Program File 文件夹下的全局文件夹,则可能会遇到各种被投毒问题,比如某次系统更新之后,应用程序就因为 .NET 环境损坏而无法启动

GC垃圾收集时,居然还有用户线程在奔跑

thbcm阅读(177)

其实执行本地代码的线程仍然可以运行,那么这些线程一旦改变了对象中的引用关系或创建了新的对象,这会不会造成GC错误,引发问题呢?

关于Bevy中的原型Archetypes

thbcm阅读(185)

具体一点,要在Bevy(或是绝大多数基于ECS架构的游戏引擎)的游戏世界中去创建一个实体,其做法通常是创建一个包含一组组件的合集,该组件合集从概念上来表达某种游戏实体。

联系我们