各位用户为了找寻关于django+js+ajax实现刷新页面的方法的资料费劲了很多周折。这里教程网为您整理了关于django+js+ajax实现刷新页面的方法的相关资料,仅供查阅,以下为您介绍关于django+js+ajax实现刷新页面的方法的详细内容
本文实例讲述了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相应的映射
? 1url(r
'^terminal_svr'
, views.terminal_svr,name
=
'terminal_svr'
),
第二步:在views.py中实现这个处理函数
? 1 2 3 4 5 6 7 8 9 10from
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程序设计有所帮助。