美文网首页
Django 2.1.7 处理ajax请求、GET、POST请求

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

作者: Devops海洋的渔夫 | 来源:发表于2019-09-15 10:59 被阅读0次

    需求问题

    在业务处理的工作中,在同一个视图处理上,可能会有普通的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只需要在不同方法下进行一个判断即可。

    相关文章

      网友评论

          本文标题:Django 2.1.7 处理ajax请求、GET、POST请求

          本文链接:https://www.haomeiwen.com/subject/gjmjyctx.html