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

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)

http://www.xdnf.cn/news/5560.html

相关文章:

  • FFmpeg 项目中的三大核心工具详解
  • 【HarmonyOS 5】鸿蒙App Linking详解
  • 【Web/HarmonyOS】采用ArkTS+Web组件开发网页嵌套的全屏应用
  • labview硬件采集卡驱动安装
  • Spark目前支持的部署模式。
  • 【ZYNQ Linux移植】5-根文件系统移植
  • C++匿名函数
  • Babylon.js学习之路《三、创建你的第一个 3D 场景:立方体、球体与平面》
  • MyBatis 动态 SQL 核心标签教程:_if_, _where_, _foreach_
  • 第六节第一部分:认识抽象类及其好处
  • 字节高效图像定制生成模型框架:DreamO论文速读
  • 【数据结构】map_set前传:二叉搜索树(C++)
  • Window、CentOs、Ubuntu 安装 docker
  • 学习黑客5 分钟深入浅出理解Windows System Configuration
  • 【免费】2005-2018年各省人均财政收支数据
  • Qt for Android申请允许管理所有文件权限
  • n8n 修改或者智能体用文档知识库创建pdf
  • SSRF相关
  • 单片机ESP32天气日历闹铃语音播报
  • 《Python星球日记》 第66天:序列建模与语言模型
  • 【类拷贝文件的运用】
  • Kubernetes控制平面组件:Kubelet 之 Static 静态 Pod
  • 添加购物车-02.代码开发
  • flutter使用命令生成BinarySize分析图
  • 【漫话机器学习系列】255.独立同分布(Independent and Identically Distributed,简称 IID)
  • 原生的 XMLHttpRequest 和基于 jQuery 的 $.ajax 方法的异同之处以及使用场景
  • MiMo-7B-RL调研
  • 【数据结构入门训练DAY-32】LETTERS
  • 【C++进阶篇】多态
  • 设计杂谈-工厂模式