Django未在模板中呈现python变量

Django未在模板中呈现python变量,python,django,Python,Django,我试图在HTML模板中呈现Python文件中的字符串变量。变量名为contacts,在我的模板中,我有{{contacts | default:“null”}。从文档中可以看出,这似乎应该是可行的,但是模板一直使用null关键字。我翻遍了文件,什么也没找到。可能是我忽略了一件非常简单的事情,让我沮丧不已 在python文件中,我使用API获取JSON并将其卸载到字典中(不知道所有具体术语),然后将需要的值提取到字符串中: ... dict_data = dict(json.loads(data)

我试图在HTML模板中呈现Python文件中的字符串变量。变量名为contacts,在我的模板中,我有{{contacts | default:“null”}。从文档中可以看出,这似乎应该是可行的,但是模板一直使用null关键字。我翻遍了文件,什么也没找到。可能是我忽略了一件非常简单的事情,让我沮丧不已

在python文件中,我使用API获取JSON并将其卸载到字典中(不知道所有具体术语),然后将需要的值提取到字符串中:

...
dict_data = dict(json.loads(data))
contacts = str(dict_data["contact_count"])
然后在我的HTML文件中:

<p class="spotbanner">
{{contacts|default:"null"}} spots left!
</p>

{{contacts |默认值:“null”}左点!


我还缺什么吗?一些超级简单的东西,我只是不了解Django,尽管我以前使用过这种方法?很高兴提供更多信息。

再仔细研究一下,找到了答案。对于像我这样的人:

这并不像渲染变量那么简单。Django在将.py文件导入views.py之前不会看到它。完成后,需要在呈现页面的方法中创建上下文。对我来说,当我补充说:

context = context = {"contacts":contacts}

也许一个简单的例子可以帮助你。调用render_to_string以在Django中加载模板HTML

  • 请注意,键名将映射到HTML中的变量名
从django.template.loader导入呈现到字符串
rendered=render_to_string('my_template.html',{'foo':'bar'})
#{{foo}}将在HTML中显示字符串“bar”
转介:

因此,根据你的情况,假设我们会看到

contacts=str(dict_data[“contact_count”])
#如果要显示联系人计数-->请在HTML中使用{{contact\u count}}
rendered=render_to_string('my_template.html',contacts)

您确定
联系人
不是空的吗?另外,
{{contacts}}
在模板中显示了什么吗?@ArakkalAbu当我运行带有contacts的.py程序并打印变量时,我得到了一个值。不,{{contacts}}什么也不给我。”…我运行.py程序…“对不起,我不明白。如何运行脚本/服务器?因此,在我的getcontacts.py文件中,我使用API并创建变量,等等。我使用命令行来运行它。当我在Django项目中包含该文件时,模板看不到该变量。我认为这可能是因为程序没有实际运行,变量也没有创建,但即使用静态字符串替换API调用等,并将联系人设置为该字符串,仍然不能解决问题。我希望我回答了这个问题。请在你的问题中添加与Django相关的Django视图,可能存在较大的问题。你的问题没有包含足够的信息,无法得出此解决方案。请更新它!