我有一个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上?
答案 0 :(得分:5)
除了服务器端代码(Python)之外,还需要添加一些客户端代码(JavaScript)。
一种常见的方法是使用jQuery ajax()
方法向服务器发送ajax请求,使用django应用程序处理此问题,将响应发送回客户端,然后操作DOM。
所以你的客户端代码需要
$.ajax()
)$.ajax()
成功回调中
功能)你的django应用需要
HttpResponse
(this SO question谈论JSON和HttpResponses)返回此JSON。我还建议您阅读this excellent answer关于使用django和ajax(包括jQuery $.ajax()
方法的示例)。
还值得一提的是,您不必将jQuery用于ajax步骤 - you can generate Ajax requests with pure JavaScript - 但它是一种流行的方法,并且非常友好。