56. Django 2.1.7 处理ajax请求GETPOST请求

Posted 海洋的渔夫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了56. Django 2.1.7 处理ajax请求GETPOST请求相关的知识,希望对你有一定的参考价值。

需求问题

在业务处理的工作中,在同一个视图处理上,可能会有普通的GET、POST请求,还会有ajax请求。那么怎么在处理这些请求的时候做上区分呢?

对于这个问题需要有以前两种区分:

  • 一种是视图函数
  • 一种是类视图

这两种方式在处理上大同小异,下面来看看例子。

视图函数:同时存在GET,POST,Ajax处理

def test(request):
if request.method == 'GET':
...

if request.is_ajax():
...
return JsonResponse({'resCode':'0'})


if request.method == 'POST':
...

这是一种前面文章Django 2.1.7 类视图中,在介绍类视图的时候说明了一个视图函数如何在同一个url情况下处理GET以及POST请求。那么这里就是增加上了同时处理ajax的请求。

    if request.is_ajax():
...
return JsonResponse({'resCode':'0'})

其实如果没有那么多不同类型的请求,直接根据ajax的请求类型继续GET和POST处理即可。

类视图:同时存在GET,POST,Ajax处理

class TestView(View):
def get(self,request):
if self.request.is_ajax:
pass
else:
pass

def post(self,request):
if self.request.is_ajax:
pass
else:
pass

在类视图上,已经将对各个方法进行了拆分处理,拆分请求的源码内容如下:

http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']

所以,对于ajax只需要在不同方法下进行一个判断即可。


以上是关于56. Django 2.1.7 处理ajax请求GETPOST请求的主要内容,如果未能解决你的问题,请参考以下文章

Django处理ajax请求

简单的ajax请求处理 | Django

57. Django 2.1.7 查询数据返回json格式

Django 跨域请求处理

自动化运维Python系列之Django路由系统Ajax请求

Django CSRF 令牌错误或缺少 Ajax POST 请求