【问题标题】:Getting Django Python data from views.py to javascript object in template.html从views.py获取Django Python数据到template.html中的javascript对象
【发布时间】:2010-11-30 10:34:19
【问题描述】:

我正在使用 Django 的 render_to_response 将数据写入 html 页面,但我也希望 render_ to _response 调用将 python 字典加载到 javascript 关联数组中。最好的方法是什么?

【问题讨论】:

    标签: javascript django


    【解决方案1】:

    Vinay Sajip 很接近,但是您添加了安全过滤器以避免 django 自动转义 json 数据,所以这会起作用(还有其他方法可以阻止自动转义,但这是最简单的方法):

     var my_associative_array = {{ json_data|safe }}
    

    【讨论】:

      【解决方案2】:

      将其转换为 JSON 并在您的 template.html 中包含 <script> 标记,类似于

      var my_associative_array = {{ json_data }}
      

      在将 Python 字典 JSON 编码为字符串并使用键 json_data 将其放入上下文之后。

      【讨论】:

        【解决方案3】:

        这到底是什么意思?如果您的意思是您认为模板中的数据是 JavaScript 术语,那么它不是:您可以直接在模板中使用 python 对象。如果您的意思是,我如何将 Python 字典或列表中的 JSON 文字嵌入到我的模板中:使用 Django 中包含的 simplejson 对其进行编码。

        但是,您通常不想这样做有几个原因。如果您在模板中包含此动态数据,则无法轻松缓存它。这不应该是另一个正在生成您包含的 JS 文件的视图吗?或者可能是一个 AJAX 调用来在页面上线后获取数据?选择最适合您的情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-05-21
          • 2016-04-03
          • 2016-07-17
          • 2019-04-07
          • 2015-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多