第6天:配置与环境变量
配置简介
在Flask中,配置是通过键值对进行设置的,这些配置可以控制应用的行为。Flask提供了一个配置类Config
,可以在这个类中设置各种配置项。
基本配置
Flask应用的配置通常在应用实例创建时指定:
from flask import Flask
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
app.config['DATABASE_URI'] = 'sqlite:///yourdatabase.db'
配置文件
为了更好地管理配置,特别是当配置需要根据不同环境(开发、测试、生产)而变化时,可以将配置放在一个单独的文件中。
- 创建配置文件:
- 在
/instance
目录下创建一个config.py
文件。
- 在
示例配置文件 (instance/config.py
):
class Config(object):
SECRET_KEY = 'your_secret_key'
DATABASE_URI = 'sqlite:///yourdatabase.db'
class DevelopmentConfig(Config):
DEBUG = True
class ProductionConfig(Config):
DEBUG = False
- 加载配置:
- 在应用工厂中加载相应的配置类。
应用工厂加载配置 (app.py
):
from yourapplication.instance import DevelopmentConfig
def create_app():
app = Flask(__name__)
app.config.from_object(DevelopmentConfig)
# 其他初始化代码...
return app
环境变量
环境变量是另一种配置应用的方式,它们在操作系统级别设置,可以在不同的环境之间共享。
-
设置环境变量:
- 在Unix或Mac上,可以使用
export
命令设置环境变量。 - 在Windows上,可以使用
set
命令设置环境变量。
- 在Unix或Mac上,可以使用
-
在Flask中使用环境变量:
- 使用Python的
os.environ
来访问环境变量。
- 使用Python的
示例使用环境变量:
import os
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'default_secret_key')
配置优先级
Flask在加载配置时有一定的优先级顺序:
- 默认配置
- 从配置文件中加载的配置
- 从环境变量中加载的配置
- 直接在代码中设置的配置
使用flask config
命令
Flask CLI提供了一个config
命令,可以用来查看当前应用的所有配置。
- 查看配置:
flask config
结语
今天,我们学习了如何在Flask中使用配置和环境变量。合理地使用配置可以帮助你管理不同环境下的应用设置,同时保持代码的灵活性和安全性。
记得尝试使用配置文件和环境变量来管理你的Flask应用配置。这是一个很好的实践机会,可以帮助你加深对Flask配置管理的理解。