繁体   English   中英

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

[英]How to get values from the Ajax() into Django template?

我有一个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)

在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 %}

现在,我要通过Ajax更新那些row.1,row.2,row.3,而不必每次都重新分配页面。 数据来自数据库。 那么我在哪里以及如何放置一些Ajax()来实现Django?

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

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

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

  • 发送XMLHttpRequest到服务器(通常使用$.ajax()
  • 如果请求成功,则修改DOM(通常在$.ajax()成功回调函数内部)
  • 你可以通过遍历的JSON响应创建由表行所需要的标记数据做到这一点,然后使用JavaScript / jQuery的这个新的标记替换前一行(如图所示这里

而且您的Django应用程序需要

  • 网址分配器中的网址格式匹配
  • 在关联的视图中查询数据库
  • 将返回的数据序列化为JSON (您可以使用python JSON模块)
  • 通过HttpResponse返回此JSON( 此SO问题讨论JSON和HttpResponses)

我还建议您阅读有关使用django和ajax的出色答案 (包括jQuery $.ajax()方法的示例)。

还值得一提的是,您不必在ajax步骤中使用jQuery- 您可以使用纯JavaScript生成Ajax请求 -但这是一种流行的方法,并且非常用户友好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM