Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django中的模板内使用views.py中的变量?_Django - Fatal编程技术网

如何在Django中的模板内使用views.py中的变量?

如何在Django中的模板内使用views.py中的变量?,django,Django,我的应用程序目录的文件views.py中有一个变量。 我需要在模板中打印该变量。 我该怎么做?您可以将变量传递到上下文字典中,并在模板中呈现它 当您使用Django模板时,它会被编译一次(并且只编译一次)并存储起来以备将来使用,作为一种优化。模板可以在双大括号中包含变量名,例如{{myvar1}}、{{myvar2} 上下文是一个字典,变量名作为“键”,它们的值作为“值”。因此,如果上面模板的上下文看起来像:{myvar1:101,myvar2:102},那么当您将此上下文传递给模板呈现方法时,

我的应用程序目录的文件
views.py
中有一个变量。 我需要在模板中打印该变量。
我该怎么做?

您可以将变量传递到上下文字典中,并在模板中呈现它

当您使用Django模板时,它会被编译一次(并且只编译一次)并存储起来以备将来使用,作为一种优化。模板可以在双大括号中包含变量名,例如{{myvar1}}、{{myvar2}

上下文是一个字典,变量名作为“键”,它们的值作为“值”。因此,如果上面模板的上下文看起来像:{myvar1:101,myvar2:102},那么当您将此上下文传递给模板呈现方法时,{{myvar1}}将替换为模板中的101,{{myvar2}替换为模板中的102。这是一个过于简单的示例,但实际上上下文对象是呈现模板的“上下文”

对于ContextProcessor,这是一个稍微高级的概念。您可以在settings.py文件中列出一些上下文处理器,它们接收HttpRequest对象并返回字典(类似于上面的上下文对象)。上下文处理器返回的字典(上下文)被合并到Django传递给您(用户)的上下文中

上下文处理器的一个用例是,您总是希望在模板中插入某些变量(例如,用户的位置可能是候选变量)。您可以简单地为它编写一个上下文处理器,并将其添加到settings.py中的TEMPLATE_context_PROCESSORS settings中,而不是编写代码在每个视图中插入它

例如,

在您的视图中.py

foo = 'bar'
context = {'foo': foo }
return render(request, 'template_name', context)
在模板中,您可以访问变量

{{ foo }}

为什么要投反对票?因为这是一个绝对基本的问题,只要简单阅读一下教程就可以回答。@DanielRoseman也不是一个基本问题。为什么会有这么多的投票?这里
bar
是变量名?
foo='bar'
意味着foo是变量名,“bar”只是一个字符串为什么
bar
是一个字符串
foo
是一个保存字符串值的变量。然后,如果您想在模板中打印变量,请查看我的答案。照它说的做。@kashish,context={'foo':foo}你可以这样说,context={'foo':'bar}他把它分开让你理解。因为你说它是变量这就是为什么