django和javascript如何组织

django和javascript如何组织,javascript,django,variables,embed,Javascript,Django,Variables,Embed,我试图弄清楚如何组织我的javascript/django代码 到目前为止,我习惯于将特定于javascript页面的代码放在同一个文件中。i、 e我将javascript嵌入模板内的标记中。 当我的JS代码变大时,这会造成很多混乱: -django模板变量{{var}}在我的JS代码中看起来不太好, -当我尝试使用像这样的工具缩小它时,会出现一个错误:, -我只是尽量把它们分开 今天,在我的嵌入式标记中,我的JS代码如下所示: var app = { func: function() {

我试图弄清楚如何组织我的javascript/django代码

到目前为止,我习惯于将特定于javascript页面的代码放在同一个文件中。i、 e我将javascript嵌入模板内的
标记中。 当我的JS代码变大时,这会造成很多混乱:
-django模板变量
{{var}}
在我的JS代码中看起来不太好,
-当我尝试使用像这样的工具缩小它时,会出现一个错误:,
-我只是尽量把它们分开

今天,在我的嵌入式
标记中,我的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,
};
如您所见,对于ajax请求,我需要将一些值从django传递到javascript,最常见的是csrftoken。但有时我也会传递应用程序本身所需的json字典。有时我也想打发服务器时间

我正在考虑将JS代码移动到一个单独的文件中,我读到这样组织更好。但是我看不出在一个普通的django应用程序中,如果没有django,它怎么可能呈现.js文件。我相信最好不要让django提供JS文件? 那么,我如何在没有太多django代码的情况下组织我的JS呢?

我不知道它是否“漂亮”,但通常,在MVC中进行web开发时,我会这样组织我的代码:

  • 我把我的标签放在我页面的模板中
  • 我在一个外部文件中编写js,传统上是在/static/js/my_template_name.js中
  • 由于我的gobal布局也可以包含一些JS代码,因此我充分利用了JS模块:

    • 通常,我不必这样做。 当我在js代码中需要来自服务器的var时,我会进行一些Ajax调用

      但如果您真的想这样处理,我可以建议您在模板中执行以下操作:

      <script>
           var from_server = {{vars_from_server}};
      </script>
      
      
      var from_server={{vars_from_server}};
      
      通常,如果将名为vars_的变量从_服务器传递到模板,它将替换脚本标记之间的占位符。只需考虑以正确的JS方式格式化“vars_from_server”


      之后,您可以通过从任意位置访问服务器变量来访问脚本中的变量。

      仍然不理解如何将django变量传递到外部文件中的JS代码。您在模板中设置了它们吗?javascript中的url模板标记(即ajax请求)呢?今天我在JS中使用它,但是我不能像我说的那样缩小代码。。