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")
    原文作者:Alex_Hu
    原文地址: https://segmentfault.com/a/1190000014709179
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞