python pydantic 如何将字段标记为机密

python pydantic how to mark field as secret

如何将 pydantic 模型标记为机密,这样它就不会显示在 repr str 中,并且会从 dict 等中排除...

from pydantic import BaseModel

class User(BaseModel):
    name: str
    password_hash: str  # I do not want this field to leak out.

我在编写代码时考虑到了安全性,我担心将来其他人会编写不安全的代码,将 'password_hash' 字段泄露到日志等之外...

有没有办法将字段标记为机密以确保它不会泄露?

Pydantic 为这个确切目的提供便利 Secret* classes

from pydantic import BaseModel, SecretStr

class User(BaseModel):
    name: str
    password_hash: SecretStr