【问题标题】:Setting and retrieving environmental variables in flask applications在烧瓶应用程序中设置和检索环境变量
【发布时间】:2019-10-25 00:45:02
【问题描述】:

我想使用 python3/flask 构建一个非常简单的 REST api。

例如,我想将flask 所需的SECRET_KEY 设置为环境变量。

推荐的方法是什么?

我知道python-dotenv 包允许(或者我应该说需要?).flaskenv 文件,其中环境变量设置为键值对,格式为

SECRET_KEY="my_secret_key"
DB_NAME="mydatabase"

等等

然后(我假设)我可以创建一个settings.py 文件,例如

import os
SECRET_KEY = os.getenv('SECRET_KEY`)

然后对我的烧瓶文件执行import settings 等等。

我的主要问题是如何在容器化环境中进行调整,其中不会有这样的 .flaskenv 文件,但相应的变量将作为容器本身中的运行时环境变量提供(例如通过其协调器)

settings.py 的上述形式是否能够在没有.flaskenv 的情况下检索环境变量?

【问题讨论】:

    标签: python docker flask environment-variables


    【解决方案1】:

    python-dotenv 实际上和 Flask 没有任何关系。这是为了将您的 .env 文件转换为实际的环境变量。因此,如果您要在没有它的情况下使用实际的环境变量,您的 os.getenv 应该仍然可以工作。

    旁注:你也可以使用os.environ

    os.environ.get("SECRET")
    

    【讨论】:

      【解决方案2】:

      在解释器中设置你的环境变量:

      export SECRET_KEY=123
      

      environ.get()调用变量:

      from os import environ
      from flask import Flask
      
      app = Flask(__name__)
      
      app.config['SECRET_KEY'] = environ.get('SECRET_KEY')
      

      验证:

      @app.route('/verify')
      def verify():
          return '<p>' + app.config['SECRET_KEY'] + '</p>'
      

      【讨论】:

        猜你喜欢
        • 2015-04-04
        • 2016-03-09
        • 2021-05-03
        • 1970-01-01
        • 2021-01-28
        • 2020-08-02
        • 2018-11-08
        • 1970-01-01
        • 2012-10-03
        相关资源
        最近更新 更多