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)