本文实例讲述了django+js+ajax实现刷新页面的方法。分享给大家供大家参考,具体如下:
在服务器开发的时候,为了方便将服务器对外开一个接口来操作,可以使用django制作网页,通过页面来操作服务器。这样可以将服务器的维护工作暴漏在更加友好的界面操作,而非通过SecureCRT去敲指令。而且还能提供给策划运维人员来处理一些常规的事情。
这里将会讲解一个非常小的知识点:
① js如何发起一次请求
② django如何响应请求
③ js接收到响应如何区域刷新页面
js部分
我们先在html中定义一个button,并且将id设置成btnTerminalSvr。定义一个反馈的静态标题ntfText
1
2
|
< h2 id = "ntfText" >就绪</ h2 ></ br > < button type = "button" class = "btn btn-success" id = "btnTerminalSvr" >关闭服务器</ button > |
编写js来响应这个button的事件
1
2
3
4
5
6
|
<script type= "text/javascript" > $( '#btnTerminalSvr' ).on( 'click' , function () { alert( '嘿,我听说您点击了按钮...' ); ... }); </script> |
完善一次ajax请求的请求调用,以及回调之后的处理:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<script type= "text/javascript" > $( "#btnTerminalSvr" ).click( function (){ $.ajax({ url: './terminal_svr' , type: 'POST' , data: {}, dataType: 'json' , timeout: 10000, success: function (result) { if ( result.result == "post_success" ) { $( "#ntfText" ).html( "发起成功" ); } else { $( "#ntfText" ).html( "重复发起了" ); } } }); }); </script> |
在这里我们能在data里面填写一些json格式的数据结构,这样就能附带一些消息提供给服务器做调用。当调用成功之后他将会回调function(result)。这种写法是js的异步惯用写法,当服务器做出相应之后也我们能通过jQuery框架直接去修改id=ntfText部分的html字符串了。
django部分
第一步:我们先定义django的url相应的映射
1
|
url(r '^terminal_svr' , views.terminal_svr,name = 'terminal_svr' ), |
第二步:在views.py中实现这个处理函数
1
2
3
4
5
6
7
8
9
10
|
from django.views.decorators.csrf import csrf_exempt @csrf_exempt def terminal_svr(request): # 这里利用了django自身的登陆验证系统 if not request.user.is_authenticated(): return HttpResponseRedirect(request.META.get( 'HTTP_REFERER' , '/admin/' )) doSomething to terminal svr a = {} a[ "result" ] = "post_success" return HttpResponse(json.dumps(a), content_type = 'application/json' ) |
这块就比较简单了,我们可以读取request中的json传过来的信息,并且当操作成功后通过json串返回一个字串给前段来判断是否操作成功。
希望本文所述对大家Python程序设计有所帮助。