Flask如何读取配置信息

目录

[一、使用 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)
相关推荐
杨杨杨大侠5 小时前
Jev、Kev、Laya:决策模型怎么选,什么时候需要微调?
人工智能·python·agent
LOVE️YOU6 小时前
Python 在定义函数时,究竟定义的是什么?
python
段一凡-华北理工大学6 小时前
大模型应用开发 100 天:Python + LLM 从入门到精通 day26~Prompt 调试与优化——A/B 测试与效果评估
windows·python·大模型·prompt·智能体·提示词工程·高炉智能化
Minecraft红客6 小时前
以撒的结合
python·游戏·电脑·娱乐
Circ.6 小时前
Python 调试 Litellm 本地大模型接口:模型列表与对话接口实操踩坑记录
开发语言·python
风早爽太7 小时前
用 ‌Render‌ 快速部署网站和常见问题解决
python·fastapi
李航19838 小时前
给自己的图形引擎,配上了AI渲染,做设计真是太方便了
人工智能·python·计算机视觉·ai·ai编程
L@ncor8 小时前
第六章 框架开发实践 · 学习笔记(AutoGen / AgentScope / CAMEL / LangGraph)
python·框架·autogen·langgraph·agentscope
Zhou1411368 小时前
SpringSecurity_02_授权与高级功能
开发语言·python
饺子大魔王的男人9 小时前
Redis 内存和连接异常怎么排查?用 redis_exporter 搭一套可远程抓取的监控链路
数据库·redis·bootstrap