前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django 2.1.7 处理ajax请求、GET、POST请求

Django 2.1.7 处理ajax请求、GET、POST请求

作者头像
Devops海洋的渔夫
发布2019-09-18 11:28:14
1.5K0
发布2019-09-18 11:28:14
举报
文章被收录于专栏:Devops专栏

需求问题

在业务处理的工作中,在同一个视图处理上,可能会有普通的GET、POST请求,还会有ajax请求。

那么怎么在处理这些请求的时候做上区分呢?

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

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

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

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

代码语言:javascript
复制
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的请求。

代码语言:javascript
复制
    if request.is_ajax():
        ...
        return JsonResponse({'resCode':'0'})

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

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.09.15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求问题
  • 视图函数: 同时存在GET,POST,Ajax处理
  • 类视图:同时存在GET,POST,Ajax处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档