jquery - 如何从 Ajax() 获取值到 Django 模板中?

标签 jquery python ajax django

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

在 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)

在模板/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 %}

现在,我想要的是通过 Ajax 更新那些 row.1、row.2、row.3,而无需每次都重新加载页面。数据来自数据库。那么我可以在哪里以及如何放入一些 Ajax() 以便 Django 发生这种情况?

最佳答案

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

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

所以你的客户端代码需要

  • 发送XMLHttpRequest到服务器(通常使用 $.ajax() )
  • 如果 请求成功(通常在 $.ajax() 成功回调中 功能)
  • 您可以通过遍历 JSON 响应中的数据来创建表格行所需的标记,然后使用 JavaScript/jQuery 将前一行替换为这个新标记(如图所示 here )

你的 django 应用程序需要

我还建议您阅读 this excellent answer关于使用 django 和 ajax(包括 jQuery $.ajax() 方法的示例)。

还值得一提的是,您不必为 ajax 步骤使用 jQuery - you can generate Ajax requests with pure JavaScript - 然而,这是一种流行的方法并且非常用户友好。

关于jquery - 如何从 Ajax() 获取值到 Django 模板中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23838975/

相关文章:

jquery - 如何在 jquery ajax 中处理 Play 框架 Controller 发送的重定向?

php - 如何寻址 "Refused to Set Unsafe Header: Connection"?

python - 使用带有身份验证的 scrapy 旋转代理

javascript - 如何在发票(网站)中将 div 从 html 打印到 qweb 报告?奥杜 14

python - 有条件地激活 Flask(Werkzeug) 调试器?

jquery - 获取文本框 jquery 中的删除和粘贴事件

php - 如何通过JQuery/Ajax请求返回最新的Mysql条目

JavaScript : "event is sent to an element" -

java - 如何在jsp页面上显示通过ajax查询传递的日语字符

javascript - Google reCAPTCHA 第二次提交失败