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表单:

异步返回结果 python fastapi_django ajax 返回值

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

异步返回结果 python fastapi_django ajax 返回值_02

传递的参数如下:

异步返回结果 python fastapi_django ajax 返回值_03

5测试结果

异步返回结果 python fastapi_django_04

总结

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

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

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

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