当前位置: 首页 > news >正文

FastAPI 项目配置管理

安装Dynaconf

Dynaconf 是一个强大的 Python 配置管理库,它支持多种文件格式(如 JSON、YAML、TOML 和 .env 文件)和环境变量来管理应用程序的配置。使用 Dynaconf,您可以轻松地在不同环境(例如开发、测试和生产)之间切换配置。

安装SDK

pip install dynaconf -i https://mirrors.aliyun.com/pypi/simple/

初始化全局配置

1、在项目中创建config包,在config包中创建配置文件,dev.yml、prod.yml 文件

2、编写init.py文件

from pathlib import Path
from dynaconf import Dynaconf# 获取项目的绝对路径
_BASE_DIR = Path(__file__).parent.parent# print(Path(__file__)) # D:\05-FastAPI\project\MyFastAPI\config\__init__.py
# print(Path(__file__).parent) # D:\05-FastAPI\project\MyFastAPI\config
# print(Path(__file__).parent.parent) # D:\05-FastAPI\project\MyFastAPI
# print(_BASE_DIR) # D:\05-FastAPI\project\MyFastAPIprint("project base dir: ", _BASE_DIR)
print("project config dir: ", Path(__file__).parent)settings_files = [# 开发环境Path(__file__).parent / "dev.yml",# 生产环境#Path(__file__).parent / "prod.yml",
]# 配置对象
settings = Dynaconf(envvar_prefix="MY_PROJECT", # 环境变量前缀env_switcher="MY_PROJECT_ENV", # 用于切换模式的环境变量名称 例如: MY_PROJECT_ENV = devsettings_files=settings_files, # 配置文件enviroments=True, # 启用多环境支持base_dir=_BASE_DIR, # 项目的绝对路径load_dotenv=True,
)

3、yml文件

server:port: 8080context_path: /log:log_level: INFOmysql:host: 127.0.0.1port: 3306database_name: testusername: rootpassword: 666666echo_sql: True # 是否打印SQLpool_size: 10 # 连接池的大小,指定同时在连接池中保持的数据库连接数,默认: 5max_overflow: 20 # 超出连接池大小的连接数,超过这个数量的连接将被丢弃,默认: 5pool_pre_ping: True  # 启用连接预检

4、测试

from config import settingsport = settings.server.port
context_path = settings.server.context_pathprint(port)
print(context_path)

相关文章:

  • C/C++ 面试复习笔记(2)
  • << C程序设计语言第2版 >> 练习 1-23 删除C语言程序中所有的注释语句
  • 高级数据结构与算法期末考试速成记录
  • 6个月Python学习计划 Day 9 - 函数进阶用法
  • ros2工程在普通用户下正常编译但root下编译无法成功也不会自动停止
  • 历年南开大学计算机保研上机真题
  • flask入门
  • MySQL数据归档利器:pt-archiver原理剖析与实战指南
  • 阻止H5页面中键盘收起的问题
  • React从基础入门到高级实战:React 高级主题 - React Concurrent 特性:深入探索与实践指南
  • springboot文件上传下载
  • AgenticSeek,开源本地通用AI Agent,自主执行任务
  • 如何优化Hive的查询性能?请详细说明查询优化的各个层面(SQL优化、配置优化、资源优化等)和具体方法。
  • Oracle数据库性能优化的最佳实践
  • 数据结构 堆与优先级队列
  • 【数据库】数据库恢复技术
  • 使用 Cython 编译将.py文件加密成.so文件
  • Apptrace:APP安全加速解决方案
  • 企业知识库问答系统避坑指南:检索优化与生成一致性解决方案
  • 【Redis】hash
  • 破解wordpress网站密码/如何建网站详细步骤
  • qq空间做单页网站/网站制作大概多少钱
  • jsp网站开发的环境配置/如何推广微信公众号
  • 网站建设属于什么费用/西安seo排名
  • 广州手机网站定制信息/网站公司网站建设
  • 浙江网站建设 seo/网站搭建模板