django ajax 返回值,django中的ajax

1背景概述

在现在的web场景中,越来越多的使用到异步加载,本篇文章主要用来给出一个最基本的例子,关于使用JQ的ajax请求的发送。

在django中,发送异步请求的时候,get请求和其他的框架基本是一样的,不需要发送其他额外的信息,但是在使用post请求的时候,需要考虑到的是,django一般开启了跨站***防护的选项,也就是csrf_token,从而在进行post请求的时候,也必须传过去这个值。

2视图函数

视图函数的内容如下所示:

def restartoperation(request):

if request.is_ajax():

if request.method== "POST":

print request.POST

return HttpResponse('HEllo')

判断一个请求是否是ajax请求的主要目的,就是对于这同一个方法,使用ajax请求的时候,可能只需要传输部分的信息,也可能是返回不同的结果,从而使用is_ajax来进行判断,如果对于ajax请求没有特殊的要求,那么无需进行判断。

3路由映射

在django中,将url路径映射到处理的函数,也就是vies中的方法,主要就是路由了,也可以称之为映射,就是一个url对应于一个views方法。如下:

url(r'^restartoperation/$',restartoperation,name='restartoperation'),

4页面JS脚本

在使用ajax请求的时候,其实最主要的感觉就是页面js的写法,因为这算是前端的活了,界面上的主要js脚本和元素如下所示:

(function($) {

$('#restart').click(

function () {

var csrf = $("input[name=csrfmiddlewaretoken]").val();

var hostip = $('#hostip').html();

alert(hostip);

request = {'csrfmiddlewaretoken':csrf,'hostip':hostip}

$.ajax({

type: "POST",

url: "/webcms/restartoperation/",

data: request,

context: document.body,

success: function(date){

if(date == ""){ alert("未查找到对应的IP")};

$('#result').html(date);

}

});

})

})(jQuery);

form表单:

24d7f5a911f1a0b8ba895d95e7514fc1.png

页面上显示结果的地方如下所示:

701a1616f21f159c03acad6dcd69dfc9.png

传递的参数如下:

b1ce4e4d7a326d329273bd55cead9083.png

5测试结果

848887832f7e687d46d8180cf7d3adf9.png

总结

1、django中的ajax请求,当使用post方法的时候,必须要添加form标签里的csrfmiddlewaretoken的值,否则的话,会出现403的结果,会直接被中间件进行forbidden连接。

2、 在使用ajax请求的时候,可以使用get请求,也可以使用post请求,当使用get请求的时候,是将相关的参数封装在url中,并且传输的数据大小是有限制的,使用post的请求的时候,数据是存放在表单form中传输,传输的数据大小没有限制。

3、在进行ajax请求交互的时候,可以直接给出html页面,也可以给出json数据,可以限定返回值的类型,从而做出相应的东西,在例子中,给出的是html代码。

4、 可以改进的地方,在url的地方可以换成tag的形式,从而更加灵活。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值