目录
[一、使用 app.config 读取配置](#一、使用 app.config 读取配置)
[1. 直接设置](#1. 直接设置)
[2. 从 Python 文件加载](#2. 从 Python 文件加载)
[3. 从环境变量加载](#3. 从环境变量加载)
[4. 从字典加载](#4. 从字典加载)
[5. 从 .env 文件加载(推荐开发环境用)](#5. 从 .env 文件加载(推荐开发环境用))
在 Flask 中读取配置信息有几种常见方式,下面是详细的说明和示例:
一、使用 app.config 读取配置
Flask 提供了 app.config 对象来管理配置信息,支持从多种来源加载配置。
二、设置配置的几种方式
1. 直接设置
python
from flask import Flask
app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'mysecretkey'
2. 从 Python 文件加载
创建一个 config.py 文件:
python
DEBUG = True
SECRET_KEY = 'mysecretkey'
DATABASE_URI = 'sqlite:///example.db'
在 Flask 应用中加载:
python
app.config.from_pyfile('config.py')
3. 从环境变量加载
python
import os
app.config.from_envvar('MYAPP_CONFIG') # 环境变量中包含配置文件路径
设置环境变量:
export MYAPP_CONFIG=/path/to/config.py
4. 从字典加载
python
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)或手动加载:
python
from dotenv import load_dotenv
load_dotenv()
import os
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY')
三、读取配置值
python
debug_mode = app.config.get('DEBUG', False)
secret = app.config['SECRET_KEY']
四、最佳实践建议
- 把敏感配置(如数据库密码、密钥)放在 .env 或环境变量中。
- 使用 config.py 管理分环境配置,如 config/dev.py, config/prod.py。
- 可定义配置类:
python
class Config:
DEBUG = False
SECRET_KEY = 'defaultsecret'
class DevConfig(Config):
DEBUG = True
DATABASE_URI = 'sqlite:///dev.db'
app.config.from_object(DevConfig)