我正在试图弄清楚如何整理我的javascript / django代码。
到目前为止,我曾经将我的javascript页面特定代码放在同一个文件中。即我在模板内的<script>
标签中嵌入了javascript。
当我的JS代码变大时,这会造成很多混乱:
- 我的JS代码中的django模板变量{{var}}
看起来不太好,
- 当我尝试用这样的工具缩小它时出现错误:http://jscompress.com/,
- 我只是尽可能地将它们分开。
今天,在我的嵌入式<script>
标签中,我的JS代码如下:
var app = {
func: function() {
// can I use the {% url %} tag here ?
$.post('/url/', {csrfmiddlewaretoken:'{{csrf_token}}', something:'value'} )
},
jsonFromServer: '{{pythonDict|safe}}', // I need this data structure,
};
正如您所看到的,我需要将一些值传递给django到javascript,最常见的是csrftoken,用于ajax请求。但有时我也会传递应用程序本身所需的json字典。有时我也希望传递服务器时间。
我正在考虑将JS代码移动到一个单独的文件中,我读到这是更好的组织方式。但是我不知道在正常的django应用程序中它是如何可能的,没有django必须渲染.js文件。我相信django不会提供JS文件更好吗? 那么如何在没有太多django代码的情况下组织我的JS呢?
答案 0 :(得分:0)
我不知道它是否漂亮&#34;但通常情况下,我组织我的代码,就像它在MVC中制作web dev一样:
答案 1 :(得分:0)
通常,我不必这样做。 当我在js代码中需要来自服务器的var时,我会进行一些Ajax调用。
但如果您真的想要这样处理,我可以建议您在模板中执行以下操作:
<script>
var from_server = {{vars_from_server}};
</script>
通常,如果将名为vars_from_server的变量传递给模板,它将替换脚本标记之间的占位符。试着用正确的JS方式格式化“vars_from_server”。
之后,您可以通过从任何地方访问from_server变量来访问脚本中的变量。