Jquery 如何将Ajax()中的值转换成Django模板?

Jquery 如何将Ajax()中的值转换成Django模板?,jquery,python,ajax,django,Jquery,Python,Ajax,Django,我有一个Django模板,其中显示从数据库接收的多个值,并将其传递给模板,如下所示: in views.py def test1(requests): requests.get... requests.get... requests.get... someQuery = "select id from table;" executeQ(someQuery) someQuery = "select id from table;" executeQ(someQuery)

我有一个Django模板,其中显示从数据库接收的多个值,并将其传递给模板,如下所示:

in views.py

def test1(requests):
  requests.get...
  requests.get...
  requests.get...
  someQuery = "select id from table;"
  executeQ(someQuery)
  someQuery = "select id from table;"
  executeQ(someQuery)
  someQuery = "select id from table;"
  executeQ(someQuery)
  context = Data1, Data2, Data3
  return render_to_response('test1/index.html', context)
在template/test1/index.html中

<html>
  ...... 

<table>
<th> header1 </th>
<th> header2 </th>
<th> header3 </th>

{% for row in context %}
 <td> row.1 </td>   
 <td> row.2 </td>
 <td> row.3 </td>
{% endfor %}

...... 
校长1
校长2
校长3
{上下文%中的行的%1}
第1排
第2排
第3排
{%endfor%}

现在,我想要的是通过Ajax更新这些行。1,行。2,行。3,而不是每次都重新编辑页面。数据来自数据库。那么我在哪里以及如何添加一些Ajax(),Django就是这样吗?

除了服务器端代码(Python)之外,还需要添加一些客户端代码(JavaScript)

一种常见的方法是使用jQuery方法向服务器发送ajax请求,使用django应用程序处理该请求,将响应发送回客户端,然后操作DOM

因此,您的客户端代码需要

  • 向服务器发送(常用)
  • 如果 请求成功(通常在成功回调中) 功能)
  • 您可以通过迭代JSON响应中的数据来创建表行所需的标记,然后使用JavaScript/jQuery将前一行替换为新标记(如图所示)
您的django应用程序需要

  • 匹配
  • 在关联视图中查询数据库
  • 将返回的数据序列化到(可以使用python模块)
  • 通过返回此JSON(谈论JSON和HttpResponses)
我还建议您阅读有关使用django和ajax的内容(包括jQuery方法的示例)


还值得一提的是,您不必在ajax步骤中使用jQuery,但是它是一种流行的方法,并且非常用户友好。

除了服务器端代码(Python)之外,您还需要添加一些客户端代码(JavaScript)

一种常见的方法是使用jQuery方法向服务器发送ajax请求,使用django应用程序处理该请求,将响应发送回客户端,然后操作DOM

因此,您的客户端代码需要

  • 向服务器发送(常用)
  • 如果 请求成功(通常在成功回调中) 功能)
  • 您可以通过迭代JSON响应中的数据来创建表行所需的标记,然后使用JavaScript/jQuery将前一行替换为新标记(如图所示)
您的django应用程序需要

  • 匹配
  • 在关联视图中查询数据库
  • 将返回的数据序列化到(可以使用python模块)
  • 通过返回此JSON(谈论JSON和HttpResponses)
我还建议您阅读有关使用django和ajax的内容(包括jQuery方法的示例)


还值得一提的是,您不必在ajax步骤中使用jQuery,但是它是一种流行的方法,并且非常友好。

感谢@dannymilsom提供了很好的解释和很好的示例。我有几个问题:1。Ajax()多久发送一次请求以获取更新的数据?如果需要,我们如何更改它。2.一旦我得到数据,我如何使用javascript变量进入Django{{variable}}?1。)您可以使用window.setInterval()重复发送异步请求,使用$.ajax()在适合您的需求的时间段2.)一旦页面呈现,django模板变量在源代码中将是HTML-因此您必须在JavaScript中使用适当的选择器来唯一标识您要修改的元素。没有问题-如果这有助于您自由地对其进行投票或将其标记为anwser so问题结束了。谢谢@dannymilsom的解释和很好的例子。我有几个问题:1。Ajax()多久发送一次请求以获取更新的数据?如果需要,我们如何更改它。2.一旦我得到数据,我如何使用javascript变量进入Django{{variable}}?1。)您可以使用window.setInterval()重复发送异步请求,使用$.ajax()在适合您的需求的时间段2.)一旦页面呈现,django模板变量在源代码中将是HTML-因此您必须在JavaScript中使用适当的选择器来唯一标识您要修改的元素。没有问题-如果这有助于您自由地对其进行投票或将其标记为anwser so问题结束了。