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

Flask如何读取配置信息

目录

一、使用 app.config 读取配置

二、设置配置的几种方式

1. 直接设置

2. 从 Python 文件加载

3. 从环境变量加载

4. 从字典加载

5. 从 .env 文件加载(推荐开发环境用)

三、读取配置值

四、最佳实践建议


在 Flask 中读取配置信息有几种常见方式,下面是详细的说明和示例:

一、使用 app.config 读取配置

Flask 提供了 app.config 对象来管理配置信息,支持从多种来源加载配置。

二、设置配置的几种方式

1. 直接设置
from flask import Flaskapp = Flask(__name__)
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'mysecretkey'

2. 从 Python 文件加载

创建一个 config.py 文件:

DEBUG = True
SECRET_KEY = 'mysecretkey'
DATABASE_URI = 'sqlite:///example.db'

在 Flask 应用中加载:

app.config.from_pyfile('config.py')

3. 从环境变量加载
import os
app.config.from_envvar('MYAPP_CONFIG')  # 环境变量中包含配置文件路径

设置环境变量:

export MYAPP_CONFIG=/path/to/config.py

4. 从字典加载
config_dict = {'DEBUG': True,'SECRET_KEY': 'mysecretkey'
}
app.config.from_mapping(config_dict)

5. 从 .env 文件加载(推荐开发环境用)

使用 python-dotenv:

# .env 文件内容
DEBUG=True
SECRET_KEY=mysecretkey

安装库并在 Flask 中启用:

pip install python-dotenv

Flask 自动加载 .env(如果你使用 Flask CLI)或手动加载:

from dotenv import load_dotenv
load_dotenv()
import os
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY')

三、读取配置值

debug_mode = app.config.get('DEBUG', False)
secret = app.config['SECRET_KEY']

四、最佳实践建议

  • 把敏感配置(如数据库密码、密钥)放在 .env 或环境变量中。
  • 使用 config.py 管理分环境配置,如 config/dev.py, config/prod.py。
  • 可定义配置类:
class Config:DEBUG = FalseSECRET_KEY = 'defaultsecret'class DevConfig(Config):DEBUG = TrueDATABASE_URI = 'sqlite:///dev.db'app.config.from_object(DevConfig)

相关文章:

  • Service Mesh实战之Istio
  • 9.0 C# 调用solidworks介绍1
  • 01 安装CANoe
  • 【AI提示词】PEST分析
  • Linux服务器连接SSH工具FinalShell安装使用支持Linux文件上传下载
  • 【学习笔记】机器学习(Machine Learning) | 第六章(2)| 过拟合问题
  • 基于STM32、HAL库的LPS22HBTR 气压传感器 驱动程序设计
  • 产品功能更新迭代后需要重做算法备案吗?
  • 时空注意力机制深度解析:理论、技术与应用全景
  • ThreadLocal 详解
  • Kafka、RabbitMQ 和 RocketMQ区别及上手难度
  • LVGL(lv_checkbox复选框按键)
  • MySQL 全量、增量备份与恢复
  • RabbitMQ ③-Spring使用RabbitMQ
  • 段错误(Segmentation Fault)总结
  • Java MVC
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十二)
  • Java使用POI+反射灵活的控制字段导出Excel
  • 18.three官方示例+编辑器+AI快速学习webgl_buffergeometry_points_interleaved
  • 神经网络初步学习——感知机
  • 外媒:初步结果显示,菲律宾前总统杜特尔特当选达沃市市长
  • 美国“贸易战”前线的本土受害者:安静的洛杉矶港和准备关门的小公司
  • 中山大学人类学系原系主任冯家骏逝世,享年95岁
  • 未来之城湖州,正在书写怎样的城市未来
  • 重温经典|《南郭先生》:不模仿别人,不重复自己
  • 司法部:加快研究制定行政执法监督条例,建立完善涉企行政执法监督长效机制