Flask参数配置

在Flask中的参数配置保存在Flask对象的config属性中。

config实际上继承于字典,可以像修改字典一样修改它:

app = Flask(__name__)
app.config['TESTING'] = TRUE

相应的配置会直接推送到Flask对象上,所以你可以直接在Flask对象上读写:

app.testing = True

可以使用dict.update()方法来批量更新键值对:

app.config.update(
    TESTING=True,
    SECRETE_KEY=b'^*&BKJH^*'
)

主要有三种参数配置方法:


1. 基本配置方法

即通常的 ‘字典式’ 配置方法,如我们要配置SQLAlchemy中的数据库连接URL:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://test:test@localhost/test'

2. 从文件读取

相对于1中的配置方法,一个更为优雅解决方法是从单独的文件中读取配置。

app = Flask(__name__)
app.config.from_object('yourapplication.default_settings')
app.config.from_envvar('YOURAPPLICATION_SETTINGS')

其中 app.config.from_envvar('YOURAPPLICATION_SETTINGS') 的用法和 app.config.from_pyfile(os.environ['YOURAPPLICATION_SETTINGS']) ,但是app.config.from_envvar的error message更为友好。


3. 从环境变量读取

对于某些敏感信息(如加密密钥)并不适合放在程序包中。在Linux中,我们可以这样在环境变量中设置:

$ export SECRET_KEY='5f352379324c22463451387a0aec5d2f'
$ export DEBUG=False

有一点需要注意的是,环境变量中设置的值都是字符串--并不会直接解析为python中的类型.
下面是一个使用环境变量的例子:

# Example configuration
import os

ENVIRONMENT_DEBUG = os.environ.get("DEBUG", default=False)
if ENVIRONMENT_DEBUG.lower() in ("f", "false"):
    ENVIRONMENT_DEBUG = False

DEBUG = ENVIRONMENT_DEBUG
SECRET_KEY = os.environ.get("SECRET_KEY", default=None)
if not SECRET_KEY:
    raise ValueError("No secret key set for Flask application")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值