资讯专栏INFORMATION COLUMN

Flask参数配置

yanbingyun1990 / 1456人阅读

摘要:在中的参数配置保存在对象的属性中。其中的用法和,但是的更为友好。从环境变量读取对于某些敏感信息如加密密钥并不适合放在程序包中。

在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")

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41674.html

相关文章

  • 初见Flask

    摘要:接收用户请求并分析请求的。执行函数并生成响应,返回给浏览器。这个过程我们称为注册路由,路由负责管理和函数之间的映射,而这个函数则被称为视图函数。文件是一个名为的文本文件,它存储了项目中提交时的忽略文件规则清单。 flask简述 Flask 是一个基于 Python 开发并且依赖 jinja2 模板和 Werkzeug WSGI 服务的一个微型框架,对于 Werkzeug 本质是 Soc...

    tomorrowwu 评论0 收藏0
  • flask基础之一

    摘要:最经典的就是了暂时性重定向的状态码是,表示页面暂时性被跳转,比如访问一个需要权限的网址,如果当前用户没有登录,应该重定向到登录页面。作为额外的消息头如果以上的条件都不满足,会假设返回值是一个合法的应用程序,并通过转换成一个请求对象。 flask基础之一 hello world #从flask这个包中导入Flask这个类 #Flask这个类是项目的核心,以后的很多操作都是基于这个类的对象...

    archieyang 评论0 收藏0
  • flask基础之一

    摘要:最经典的就是了暂时性重定向的状态码是,表示页面暂时性被跳转,比如访问一个需要权限的网址,如果当前用户没有登录,应该重定向到登录页面。作为额外的消息头如果以上的条件都不满足,会假设返回值是一个合法的应用程序,并通过转换成一个请求对象。 flask基础之一 hello world #从flask这个包中导入Flask这个类 #Flask这个类是项目的核心,以后的很多操作都是基于这个类的对象...

    fevin 评论0 收藏0
  • flask基础之一

    摘要:最经典的就是了暂时性重定向的状态码是,表示页面暂时性被跳转,比如访问一个需要权限的网址,如果当前用户没有登录,应该重定向到登录页面。作为额外的消息头如果以上的条件都不满足,会假设返回值是一个合法的应用程序,并通过转换成一个请求对象。 flask基础之一 hello world #从flask这个包中导入Flask这个类 #Flask这个类是项目的核心,以后的很多操作都是基于这个类的对象...

    AWang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<