Django设计模式-在加载时填充客户端JavaScript变量的方法

Django design pattern - method to populate client-side JavaScript variables on load

本文关键字:JavaScript 客户端 变量 方法 填充 设计模式 加载 Django      更新时间:2023-09-26

假设我有一个书的列表,我想用JavaScript以某种方式呈现,而不是只做下面的事情;

{% for book in books %}
  <div class="book-container">
    <div class="title">{{ book.title }}</div>
    <div class="author">{{ book.author }}</div>
  </div>
{% endfor %}

我想将书籍的json表示加载到JavaScript变量中(也许是我在客户端代码中定义的Book对象列表),并使用JavaScript以更"花哨"的方式呈现它。

无论如何,我想在页面加载时发送一个post请求来获取数据,并将其加载到一个变量中。有更好的方法吗?这些都是我最初天真的猜测。

EDIT:从本质上讲,我想学习一种合法/推荐的方法来获取上下文服务器端,并在页面加载时将其加载到JavaScript变量客户端。

为什么不直接在模板中将其输出为JSON?这将节省额外的POST请求。

<script type="text/javascript">
    var books = {{ my_json_data }}
</script>

现在books是一个全局JS变量,可以从其他脚本中访问。

看看提供REST框架的django-tastypie。您可能还想了解backbone.js和通用AJAX

https://github.com/toastdriven/django-tastypie

http://backbonejs.org/