python基础之ConfigParser配置参数,背景、示例、方法
https://cloud.tencent.com/developer/ask/sof/441150/answer/702689
dynaconf
-
目录结构
更新时间2024-12-03本人使用 dynaconf==3.2.5 3.2.6 版本时,发现文件夹不能命令settings 真tmd坑呀settings ├── __init__.py ├── constant.py ├── setting.py ├── .env ├── settings.development.toml └── settings.production.toml
-
setting.py
import os from dynaconf import Dynaconf settings_dir = os.path.dirname(os.path.abspath(__file__)) config = Dynaconf( env=os.environ.get("ENVIRONMENT") or "development", settings_files=[ "settings.toml", # 默认值 ".secrets.toml", "settings.development.toml", # 开发环境默认值 "settings.development.local.toml", # 本地开发环境 "settings.test.toml", # 测试环境 "settings.production.toml" # 生产环境 ], environments=True, # 是否使用多环境 load_dotenv=True, dotenv_path=".env", # 环境变量文件 )
-
settings.setting.toml
[default] port = 8080
-
settings.development.toml
[development] DB_HOST='127.0.0.1' DB_PORT=6379 DB_USER='document_dev' DB_PASSWD = "@format {env[DB_PASSWD]}" [development.host] domain='http://127.0.0.1'
-
settings.production.toml
[production] DB_HOST='127.0.0.1' DB_PORT=6379 DB_USER='document_prod' DB_PASSWD = "@format {env[DB_PASSWD]}" [production.host] domain='http://192.16.8.182'
-
.env 环境变量文件
DB_PASSWD= '123456'
-
如何引用
db_host = config.DB_HOST db_host = config.db_host domain = settings.host.domain
print(settings.to_dict())
ENVIRONMENT=production uvicorn main:app --reload ENVIRONMENT=dev uvicorn main:app --host 0.0.0.0 --port 8083 --reload