为什么我能够动态使用django模板变量?

时间:2015-03-11 12:30:27

标签: javascript python django

我对drango模板的理解是,一切都发生在服务器端,然后它从模板中生成一个html。之后,生成,它只是html中的纯文本。但由于某种原因,我能够在javascript中动态使用django变量。

这是一个javascript示例:

$("#smth").append("<li>{{djangoObject.0.id}}</li>");

即使我把它放在一个事件处理程序中,也就是说,它肯定会在html生成之后被调用,它的工作正常。

为何而且最重要的是,为什么django会将变量保留在客户端?

2 个答案:

答案 0 :(得分:1)

此代码呈现为$("#smth").append("<li>123</li>");之类的内容。当然这项工作在html生成后没有任何问题。

答案 1 :(得分:1)

它没有被客户端使用,它只是直接呈现在Javascript字符串中。因此,如果djangoObject[0].id为12,则生成的代码看起来像

$("#smth").append("<li>12</li>");
显然,这样运行得很好。虽然它不是动态的,但请务必记住这一点 - 它不会在事件发生时获取id。它在模板渲染时获取它,这在HTML(和嵌入式Javascript)发送到客户端(您的浏览器)之前发生。