views.py中的修改
增加相应的请求处理函数:
1
2
3
4
5
6
7
|
def getdevjson(request): print 'get here' if ('key' in request.GET): searchkey = request.GET.get('key') return JsonResponse(search(searchkey)) else: return HttpResponse('Sorry!') |
返回字符串中,既可以使用from django.http import JsonResponse,也可以使用HttpResponse(json.dumps(res))
前端网页修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
< script type = "text/javascript" > window.jQuery || document.write("< script src = '../static/js/jquery.min.js' >" + "<" + "/script>"); </ script > < script type = "text/javascript" > $(function() { var submit_form = function(e) { $.ajax({ type : "GET", url : "/getdevjson?"+Math.random(), data : { key: $('#searchContent').val() }, dataType : "text", success : function(res){ $('#searchContent').focus().select(); //console.log(res); update(res); }, error : function() { alert("处理异常返回!");} }); return false; }; $('#calculate').bind('click', submit_form); $('input[type=text]').bind('keydown', function(e) { if (e.keyCode == 13) { submit_form(e); } }); $('#searchContent').focus(); }); </ script > |
1
2
3
4
5
6
7
8
9
10
|
< div class = "divRight" id = "divright1" > < div class = "divRight" style = "height:70px; width:370px;" > < label id = "lblSearch" class = "cssLabelSearch" >请输入查询key:</ label > < input id = "searchContent" type = "text" size = "40" ></ input > < input id = "calculate" type = "button" value = "确定" ></ input > </ div > < br > < label id = "lbl1" class = "cssLabelClient" >节点信息</ label > < Textarea id = "ClientInfoArea" readonly class = "txtClientInfo" ></ Textarea > </ div > |
#calculate是一个按钮,点击动作绑定了提交函数submit_form,ajax的请求参数中,data中包含了查询参数,success是请求成功后的动作,注意返回的res需要进行json解析才可以正确使用:root = JSON.parse(jsondata);update(res)是一个更新网页内容的函数
路由配置修改
urls.py中修改如下:
1
2
3
4
5
6
7
8
|
from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', url(r'^getdevjson$','dev.views.getdevjson',name='getdevjson'), url(r'^','dev.views.index',name='index'), url(r'^admin/', include(admin.site.urls)), ) |
需要注意的是为了避免路由被覆盖,将index的路由配置尽量放置在最后一行。
以上这篇Django+Ajax+jQuery实现网页动态更新的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/wushanyun1989/article/details/54928281