我想创建一个新的 .py 文件,我想在其中存储一些将不断变化的特定变量
例如在 variables.py
var1 = 5
var2 = 10
var3 = "Hello"
然后在views.py中只做 from myapp .variables import * 我想在所有视图中使用它们只渲染
{{ var1 }}
{{ var2 }}
为什么它不起作用?
我想创建一个新的 .py 文件,我想在其中存储一些将不断变化的特定变量
例如在 variables.py
var1 = 5
var2 = 10
var3 = "Hello"
然后在views.py中只做 from myapp .variables import * 我想在所有视图中使用它们只渲染
{{ var1 }}
{{ var2 }}
为什么它不起作用?
如果视图没有使用它们,而仅用于渲染,则可以创建一个 context_processor
在 your_app/variables.py 里面
def my_variables(request):
return {
"var1": True,
"var2": "foo",
"var3": 42,
}
然后在你的 settings.py 集中
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
"your_app.variables.my_variables",
)
这些变量现在将在您呈现的每个模板中可用。
您只需要将它们作为上下文传递:
from django.shortcuts import render
from myapp.variables import var1, var2, var3
def my_view(request):
return render(request, 'myapp/index.html', {"var1":var1, "var2":var2, "var3":var3})
https://docs.djangoproject.com/en/1.6/topics/http/shortcuts/