通过Django将Python数据传递给JavaScript


Answers

对于可能遇到此问题的任何人,请确保在模板中以安全模式呈现json对象。 您可以像这样手动设置

<script type="text/javascript">
    data_from_django = {{ my_data|safe }};
    widget.init(data_from_django);
</script>
Question

我正在使用Django和Apache来提供网页服务。 我的JavaScript代码目前包含一个数据对象,其值根据用户从选项菜单中的选择显示在各种HTML小部件中。 我想从Python字典中导出这些数据。 我想我知道如何在HTML中嵌入JavaScript代码,但是如何在该脚本中嵌入数据对象(动态),以便脚本的功能可以使用它?

换句话说,我想从Python字典创建一个JavaScript对象或数组,然后将该对象插入到JavaScript代码中,然后将该JavaScript代码插入到HTML中。

我想这个结构(例如,嵌入在JavaScript代码中的变量中的数据)不是最理想的,但作为一个新手,我不知道其他选择。 我已经看过Django序列化函数的编写,但这些对我没有帮助,直到我可以将数据放到我的JavaScript代码中。

我还没有使用像jQuery这样的JavaScript库。




它不是最理想的。 您是否考虑过使用django内置的串行器将数据作为JSON传递?




将Java Script嵌入到Django模板中总是坏主意。

相反 ,因为这条规则有一些例外。

一切都取决于您的Java Script代码站点和功能。

最好有单独的静态文件,比如JS,但问题是每个单独的文件都需要另一个连接/ GET /请求/响应机制。 有时对于小的,两个内衬代码os JS将其放入模板,bun然后使用django templatetags机制 - 你可以在其他模板中使用;)

关于对象 - 相同。 如果你的网站有AJAX构造/ web2.0喜欢 - 你可以达到非常好的效果,将一些计数/数学运算放到客户端。 如果对象很小 - 嵌入到模板中,如果很大 - 在另一个连接中响应它们以避免用户的hangind页面。




Links