Accessing OS environment variables from Jinja2 template

前端 未结 3 661
予麋鹿
予麋鹿 2021-02-02 13:37

Is it possible to access a OS environment variable directly from a Jinja2 template?

3条回答
  •  有刺的猬
    2021-02-02 14:24

    Following @Renier's pointer about custom filters in the comments, I figured out a possible solution.

    Define a custom filter:

    def env_override(value, key):
      return os.getenv(key, value)
    

    Install the filter in the environment:

    env.filters['env_override'] = env_override
    

    Use the filter as follows:

    "test" : {{ "default" | env_override('CUSTOM') }}
    

    Where the appropriate environment variable can be set as:

    export CUSTOM=some_value
    

    If the environment variable is set the output will be:

    "test" : some_value
    

    Otherwise:

    "test" : default
    

提交回复
热议问题