1. 安装
pip install pydantic
pip install pydantic[dotenv]
注意:
安装pip install pydantic[dotenv]时会提示no matches found: pydantic[dotenv],zsh会将[], ^等这些bash中并不会被视为元字符的特殊字符进行扩展,所以必须在前面加上\转义或者加上引号''让zsh识别成普通字符串pip install 'pydantic[dotenv]'或pip install pydantic\[dotenv\]
2. 支持.env文件设置,有两种加载模式
- class Settings(BaseSettings):
- ...
-
- class Config:
- env_file = '.env'
- env_file_encoding = 'utf-8'
复制代码 3. 完整代码实现
3.1 python项目下新建一个.env文件
如:- NAME=test
- PASSWORD=123456
- TEST_DATA=just a test
- NUM=10
复制代码 注意:是不是string类型,即有没有双引号没什么关系
3.2 python项目下新建一个settings.py文件
如:- from pydantic import BaseSettings, Field, SecretStr
- class Settings(BaseSettings):
- root: PosixPath = Path(__file__).parent.absolute()
- webhook_uri: str = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1234567e-6947-4260-8c85-812985c6b622"
- class DB(BaseSettings):
- account: str = Field(..., env='NAME')
- password: SecretStr = Field(..., env='PASSWORD')
- data: str = Field(..., env='TEST_DATA')
- num: int = Field(..., env='NUM')
- class Config:
- env_file = '.env'
- env_file_encoding = 'utf-8'
- settings = Settings()
复制代码 注意:
1)Field:可用于提供有关字段和验证的额外信息,如设置必填项、可选、最大值、最小值、字符串长度等限制
- Field(None) 是可选字段,不传的时候值默认为None
- Field(…) 是设置必填项字段
2)SecretStr、SecretBytes 敏感信息,将被格式化为'**********‘
3)该类继承自BaseSettings类
3.3 使用上述类
- from settings import settings
- print(settings.DB().account)
- print(settings.DB().password)
- print(settings.DB().data)
- print(settings.DB().num)
- # 打印结果如下:
- # test
- # **********
- # just a test
- # 10
复制代码 4. 项目结构截图
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |