javascript - 如何从 Django 中的 html 或 js 访问环境变量

标签 javascript python html django

这里使用设置环境变量

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;
编辑:访问环境变量而不将其传递给上下文
您可以定义自己的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" />
附:您可能需要手动重新加载服务器才能使自定义标签生效。

关于javascript - 如何从 Django 中的 html 或 js 访问环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62797296/

相关文章:

python - 动态调用配置文件中定义的python类

jquery - 滚动后菜单栏固定底部屏幕 ~20px

javascript - 改变一个元素的样式而不改变另一个?

javascript - 如何从 Firebase 快照返回数组

php - 如何使用 javascript 和 PHP 上传转换缩略图的图像文件?

python - 如何在正则表达式中查找连续重复?

python - 将 CSV 匹配行与 Python 进行比较

html - CSS 位置 : table and div inside div

html - 调整网页以支持外语

javascript - 如何在 C# 代码中使用 jQuerydialog() 而不是confirm()?