现在位置: 首页 > Flask 教程 > 正文

Flask Config 配置类 API

Config 是一个字典子类,用于管理 Flask 应用的所有配置项。

通过 app.config 访问,支持从多种来源加载配置。


Config 类方法

方法 签名 说明
from_pyfile (filename, silent=False) 从 Python 文件加载配置。silent=True 时忽略文件不存在错误
from_object (obj) 从对象(模块、类、字符串导入路径)加载配置。只加载大写属性
from_envvar (variable_name, silent=False) 从环境变量指向的文件加载配置。等价于 from_pyfile(os.environ[var])
from_prefixed_env (prefix="FLASK", *, loads=json.loads) 从环境变量加载。读取 FLASK_ 前缀的变量,去掉前缀后设为配置
from_file (filename, load, silent=False, text=True) 从任意格式文件加载。load 为解析函数(如 json.load、tomllib.load)
from_mapping (mapping=None, **kwargs) 从映射对象加载配置。可选**kwargs键值对。只加载大写键
get_namespace (namespace, lowercase=True, trim_namespace=True) 获取指定前缀的配置子集。如 get_namespace("DB_") 获取所有数据库配置

加载方式对比

加载方法 适用场景 示例
from_pyfile 配置文件为 Python 格式 app.config.from_pyfile("config.py")
from_object 使用类或模块组织配置,区分环境 app.config.from_object("myapp.config.ProductionConfig")
from_prefixed_env 12-Factor App,环境变量配置 app.config.from_prefixed_env()
from_file JSON、TOML 等非 Python 格式 app.config.from_file("config.json", load=json.load)
get_namespace 提取配置子集传给库的构造函数 db_config = app.config.get_namespace("DB_")

配置键命名规则

配置键名 必须全部大写。这是 Flask 的约定,from_object、from_mapping、from_prefixed_env 等方法都会自动忽略小写键。


代码示例

实例

from flask import Flask

app = Flask(__name__)

# 方式1:从 Python 文件加载
app.config.from_pyfile("config.py")

# 方式2:从环境变量加载(读取 FLASK_ 前缀)
app.config.from_prefixed_env()

# 方式3:直接设置
app.config["MY_SETTING"] = "value"

# 方式4:从 JSON 加载
import json
app.config.from_file("config.json", load=json.load)

# 方式5:获取命名空间配置
# 假设有 DB_HOST、DB_PORT、DB_NAME 等配置
db_config = app.config.get_namespace("DB_")
# db_config = {"host": "...", "port": ..., "name": "..."}