FastAPI 项目配置管理

article/2025/7/1 16:09:07

安装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.hkcw.cn/article/RpNnSfQnni.shtml

相关文章

FPGA管脚类型,及选择

fpga的IO Type选择,如下: 具体的定义:

c++数据结构9——set结构详解

一、set以二叉查找树为基础 二叉查找树(Binary Search Tree,BST)是一种特殊的二叉树结构,具有以下特点: 左子树所有节点值小于根节点值 右子树所有节点值大于根节点值 左右子树也都是二叉查找树 图例:…

马克龙香会首秀倡“第三条道路” 吁欧亚共寻战略自主

第22届香格里拉对话会于5月30日在新加坡开幕,法国总统马克龙发表了主旨演讲。他呼吁亚洲各国与欧洲建立新联盟,通过开放贸易和对话以及在防务和安全方面加强合作,以打造一个稳定的环境并维护以规则为基础的国际秩序。北京外国语大学区域与全球治理高等研究院教授崔洪建表示,…

胖东来红内裤案当事人鞠躬道歉 名誉侵权案宣判

2025年5月28日,许昌市魏都区人民法院公开审理了原告许昌市胖东来商贸集团有限公司与被告段某的名誉权纠纷案,并当庭宣判。法院判决段某在其个人抖音账号“两个小段(小)”发布宣读书面道歉信的视频,书面道歉信需经法院审核,发布后30日内不得删除;段某赔偿许昌市胖东来商贸…

媒体人:特朗普在准备关税B计划 两步走应对法律挑战

美国总统特朗普提出的“对等关税”政策实施近两个月,但效果并不理想,还面临严峻的法律挑战。美国上诉法院暂时恢复了关税措施后,特朗普贸易团队正在为关税政策制定备用计划,以防止谈判因法律问题中断。《华尔街日报》5月30日援引消息人士的话称,特朗普团队正考虑一项两步走…

巴方为何突袭巴控克什米尔武装分子 挫败袭击基地企图

巴控克什米尔地区警方于5月29日表示,当地安全部队根据情报突袭了该地区一处武装分子藏身点,随后的枪战导致2名警察和4名巴基斯坦塔利班组织成员死亡。此次夜间突袭发生在拉沃拉果德县。当地警方负责人阿卜杜勒贾巴尔表示,被打死的武装分子隶属于巴基斯坦塔利班组织,并声称该…

端午其实是古人的卫生防疫日 解码香囊养生智慧

解码传统习俗健康密码,聚焦端午养生智慧。端午节历史悠久,蕴藏着中国最早的“卫生防疫”基因。这个节日不仅承载着丰富的文化内涵,还与现代公共卫生理念不谋而合。端午节是中国重要的传统节日,被称为“中国最早的卫生防疫日”。古代先民通过特定习俗与仪式,在仲夏时节主动…

上海独居老人3000万豪宅堆满垃圾 生活令人匪夷所思

中海建国里是上海的顶级豪宅,单价达到每平米23万元。一套160平米的房子总价超过3600万元。然而,有一位上海大妈住在价值3700万的豪宅里,却过着令人难以置信的生活。她喜欢捡垃圾,并且将这些垃圾堆在家里。时间久了,家里充满了苍蝇、蚊子、蟑螂,甚至有死老鼠。楼道里的垃圾…

媒体人:美用签证工具破坏教育交流 无理取闹损人不利己

近日,美国国务卿鲁比奥宣布将开始吊销中国学生签证,这一消息引起广泛关注。鲁比奥在社交媒体上表示,要吊销与中国政府有联系或在关键领域学习的中国学生签证。美国国务院网站也发布声明,称新签证政策优先考虑美国利益,并将与国土安全部合作推进吊销事宜,同时加强对中国学…

机器视觉运动控制一体机在背靠背点胶焊锡机上的应用

市场应用背景 点胶与焊锡作为制造业自动化关键环节,专注服务电子、半导体、汽车及医疗等领域的高精密工艺需求。精密高速点胶焊锡解决方案通过实现高精高效的流体控制与焊接操作,助力企业实现生产效率与产品品质的双重提升。 ▲ 待加工的PCB板 ▲ 点胶…

接口自动化测试实战:测试用例也能自动生成

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 作为测试,你可能会对以下场景感到似曾相识:开发改好的 BUG 反复横跳;版本兼容逻辑多,修复一个 BUG 触发了更多 BUG…

IO进程(进程间通信 IPC)

进程间通信方式IPC 1).早期的进程间通信: 无名管道(pipe),有名管道(fifo),信号(signal) 2).system V IPC: 共享内存(share memory),消息队列(message que…

端午时节,粽香四溢

端午时节,粽香四溢,那缕缕清香仿佛在召唤着我们共赴这一夏的热情之约。在这充满活力与希望的氛围里,codigger 作为分布式操作系统闪耀登场。它凭借高效协同的工作模式,让各个节点紧密配合、无缝衔接;以灵活拓展的架构&…

贪心算法实战3

文章目录 前言区间问题跳跃游戏跳跃游戏II用最少数量的箭引爆气球无重叠区间划分字母区间合并区间 最大子序和加油站监控二叉树 前言 今天继续带大家进行贪心算法的实战篇3,本章注意来解答一些运用贪心算法的比较难的问题,大家好好体会,怎么…

建筑水电燃气能耗管理系统

系统介绍 能耗管理系统使用物联网技术采集分布各地的电表、水表、燃气表等能源计量仪表数据,同时使用大数据技术对数据进行处理与存储。为满足用户对能源消耗的精细化管理,平台提供能耗看板、支路能耗统计、能耗同比/环比比较、能源流向图、能耗折标、单…

美国关税演了一出律政戏 特朗普政策遭法院叫停

最近国际贸易圈发生了一系列戏剧性的事件,特朗普的关税政策成为焦点。2025年4月2日,特朗普签署了一项“对等关税”行政令,宣布这一天为“解放日”。根据这项行政令,美国将对中国征收30%的关税,对墨西哥和加拿大的部分商品征收25%的关税,并对大多数进口商品征收10%的普遍关…

委内瑞拉宣布加入国际调解院 促进多极化与和平公正

5月30日,委内瑞拉外交部宣布正式加入国际调解院。公告中提到,由中国牵头成立的国际调解院是一个强有力的多边工具,其成立标志着国际秩序向多极化、多中心、和平公正方向发展的决定性转变。委内瑞拉祝贺并感谢中国政府为世界和平、国际正义及全球南方国家发展作出的历史性贡献…

Error: Flash Download failed - Could not load file “xxx.axf“

今天在Keil uVision5用ST-LINKV2仿真器下载程序到板卡上,报如下错误: 到上图提示的目录下,发现确实没有生成axf文件。解决方法如下: 按下图单击魔棒工具栏按钮: 在弹出的对话框中选择“C/C”,然后勾选“C9…

MES管理系统:Java+Vue,含源码与文档,实现生产过程实时监控、调度与优化,提升制造企业效能

前言: 在当今竞争激烈的制造业环境中,企业面临着提高生产效率、降低成本、提升产品质量以及快速响应市场变化等多重挑战。MES管理系统作为连接企业上层计划管理系统与底层工业控制之间的桥梁,扮演着至关重要的角色。它能够实时收集、分析和处…

IMU--编程

教程 IMU编程主要分两部分:下位机的控制器获取IMU数据发送给上位机,上位机获取IMU数据之后进行算法处理。 下位机编程 上位机编程 机器人中,上位机一般用ros实现,上位机接收到数据之后,需要进行哪些处理? …