如何在Django中从html或js访问环境变量

2024-03-17

这里使用设置环境变量

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.settings')

我想在 UI 中显示一些值。有什么方法可以从中访问值DJANGO_SETTINGS_MODULE?


您可以在这样的上下文中传递您需要的变量

import os

from django.shortcuts import render

def your_view(request):
    return render(request, 'path/to/template.html', context={
        'YOUR_ENV_VARIABLE': os.environ.get('YOUR_ENV_VARIABLE')
    })

然后在path/to/template.html您可以访问该上下文变量。但对于 JS 文件来说,它可能会有点棘手,尽管你可以使用{{ template syntax }}将变量值放入其中<script>HTML 中的标签,但外部有 JS(从 HTML 链接)是很常见的。然后您可以在 HTML 中执行类似的操作。

<input id="YOUR_ENV_VARIABLE" value="{{ YOUR_ENV_VARIABLE }}" type="hidden" />

然后在你的JS文件中

let hiddenInput = document.getElementById("YOUR_ENV_VARIABLE");
let yourEnvVariableValue = hiddenInput.value;

编辑:访问环境变量而不将其传递到上下文

您可以定义自己的模板标签 https://docs.djangoproject.com/en/3.0/howto/custom-template-tags/。例子:

# your_app/templatetags/env_extras.py

import os
from django import template

register = template.Library()


@register.simple_tag
def get_env_var(key):
    return os.environ.get(key)

然后在你的 HTML 中:

{% load env_extras %}

<input id="YOUR_ENV_VARIABLE" value="{% get_env_var 'YOUR_ENV_VARIABLE' %}" type="hidden" />

附:您可能需要手动重新加载服务器才能使自定义标记生效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Django中从html或js访问环境变量 的相关文章

随机推荐