当前位置: 首页 > 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)

http://www.dtcms.com/a/222574.html

相关文章:

  • 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
  • Haproxy
  • 不用 apt 的解决方案(从源码手动安装 PortAudio)
  • MiniMax V-Triune让强化学习(RL)既擅长推理也精通视觉感知
  • MyBatisPlus--快速入门
  • 【仿muduo库实现并发服务器】实现时间轮定时器
  • 接口自动化测试用例的编写方法
  • [paddle]paddle2onnx无法转换Paddle3.0.0的json格式paddle inference模型
  • Kotlin JVM 注解详解
  • ElasticSearch迁移至openGauss
  • Spring Boot 整合 Spring Security