Django JSonResponse对象的实现

 更新时间:2023年03月23日 09:21:47   作者:风老魔  
本文主要介绍了Django JSonResponse对象的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

JsonResponse 是 HttpResponse 的子类,与父类的区别在于:

  • JsonResponse 默认 Content-Type 类型为 application/json
  • HttpResponse 默认为 application/text
class JsonResponse(HttpResponse):

    def __init__(self, data, encoder=DjangoJSONEncoder, safe=True,
                    json_dumps_params=None, **kwargs):

HttpResponse

HttpResponse 每次将数据返回给前端需要用 json 模块序列化,且前端也要反序列化:

# views.py
import json

def index(request):
    message = '请求成功'
    # ret = {'message': '请求成功'}
    return HttpResponse(json.dumps(message))    # 序列化

# index.html
$.ajax({
    url: '/accounts/ajax/',
    type: 'post',
    data: {
        'p': 123,
        csrfmiddlewaretoken: '{{ csrf_token }}'
    },
    # 反序列化,或使用 json.parse(arg)
    dataType: "JSON",      
    success: function (arg) {
        console.log(arg.message);
    }
})

JsonResponse

JsonResponse 只能序列化字典格式,不能序列化字符串,且前端不用反序列化:

from django.http import JsonResponse
def index(request):

    ret = {'message': '请求成功'}
    return JsonResponse(ret)    # 序列化

# index.html
$.ajax({
    url: '/accounts/ajax/',
    type: 'post',
    data: {
        'p': 123,
        csrfmiddlewaretoken: '{{ csrf_token }}'
    },
    # 不需要反序列化
    # dataType: "JSON",      
    success: function (arg) {
        console.log(arg.message);       # 请求成功
    }
})

总结

  • HTTPResponse 后端要用 json 模块序列化,前端也要反序列化。
  • JSonResponse 前端不用反序列化,只能传输字典,不能传输字符串。

到此这篇关于Django JSonResponse对象的实现的文章就介绍到这了,更多相关Django JSonResponse对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python通过cookie模拟已登录状态的初步研究

    python通过cookie模拟已登录状态的初步研究

    对于那些需要在登录环境下进行的爬虫操作,模拟登陆或伪装已登录状态是一个刚性需求。这篇文章主要介绍了python通过cookie模拟已登录状态的相关资料,需要的朋友可以参考下
    2016-11-11
  • Python中字典和集合学习小结

    Python中字典和集合学习小结

    本文通过实例给大家介绍了python中字典和集合的知识小结,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-07-07
  • Django 创建后台,配置sqlite3教程

    Django 创建后台,配置sqlite3教程

    今天小编就为大家分享一篇Django 创建后台,配置sqlite3教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python callable()函数用法实例分析

    Python callable()函数用法实例分析

    这篇文章主要介绍了Python callable()函数用法,结合实例形式分析了Python callable()函数的功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-03-03
  • python实现稀疏矩阵示例代码

    python实现稀疏矩阵示例代码

    本篇文章主要介绍了python实现稀疏矩阵示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Python代码缩进和测试模块示例详解

    Python代码缩进和测试模块示例详解

    这篇文章主要给大家介绍了关于Python代码缩进和测试模块的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • Python使用Paramiko控制linux第三方库

    Python使用Paramiko控制linux第三方库

    这篇文章主要介绍了Python使用Paramiko控制linux第三方库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • python实现画一颗树和一片森林

    python实现画一颗树和一片森林

    这篇文章主要为大家详细介绍了python实现画一颗树和一片森林,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python使用TextRank算法提取关键词

    Python使用TextRank算法提取关键词

    textrank是在pagerank的基础上提出来的。PageRank对于每个网页页面都给出一个正实数,表示网页的重要程度,PageRank值越高,表示网页越重要,在互联网搜索的排序中越可能被排在前面
    2022-12-12
  • 深入解析NumPy中的Broadcasting广播机制

    深入解析NumPy中的Broadcasting广播机制

    在吴恩达老师的深度学习专项课程中,老师有提到NumPy中的广播机制,同时那一周的测验也有涉及到广播机制的题目。那么,到底什么是NumPy中的广播机制?本文就来介绍一下
    2021-05-05

最新评论