使用FastAPI与MongoDB和实现安全认证
1. 使用Motor与MongoDB数据库通信
1.1 定义模型
首先,需要定义一个 id 字段,其类型为 PyObjectId 。这是一个自定义类型,能使 ObjectId 与Pydantic兼容。将该类作为该字段的默认工厂。 alias 参数是Pydantic的一个选项,它允许在序列化时更改字段的名称。例如,在 MongoBaseModel 实例上调用 dict 方法时,标识符将设置在 _id 键上,这是MongoDB期望的名称。
另外,添加 Config 子类并设置 json_encoders 选项。默认情况下,Pydantic不识别 PyObjectId 类型,通过该选项可以将自定义类型与一个用于序列化的函数进行映射,这里将其转换为字符串。
# 示例代码,假设在models.py中
from pydantic import BaseModel
from bson.objectid import ObjectId
class PyObjectId(ObjectId):
@classmethod
def __get_validators__(cls):
yield cls.validate
@classm
超级会员免费看
订阅专栏 解锁全文
3884

被折叠的 条评论
为什么被折叠?



