Django返回json的几种方法(一)

使用Django已经很简单,如今前后端分离已经开始普及,那么对于我们前端来说,我们只需要拿到接口就可以了。虽然django的模板也很好用,但毕竟我们做前后端分离开发,vue、react离我们更近一些,所以我们使用django只需要实现符合restful规范的接口就可以了。

那么接下来就给大家分享一下Django返回前端数据的几种方法:

Serialize----序列化django对象

序列化 —— 将程序中的一个数据结构类型转换为其他格式(字典、JSON、XML等),例如将Django中的模型类对象装换为JSON字符串,这个转换过程称为序列化。即后端数据转给前端。

  1. 首先我们为什么需要把数据序列化?
    我们可能会有这样的需求:
  • 把内存中的各种数据类型保存到本地进行数据持久化
  • 把内存中的各种数据类型通过网络传送给其他机器或者客户端

首先我们先了解一下Python与Json之间数据类型的对应关系

image.png

articles = Article.objects.all() 打印出来
image.png

打印出的QuerySet 是Model的列表。

serializers.serialize('json', articles, ensure_ascii=False) 再次打印出来!

image.png

此时拿到的就是纯字符串,只需要将字符串解析一下就ok了。

import json
json.loads(serializers.serialize('json', articles, ensure_ascii=False))

然后如果我们要把拿到的数据发送给前端,只需要封装成json对象,使用JsonResponse返回给前端就可以了

from django.http import JsonResponse


def article_lists(request):
    articles = Article.objects.all()
    return JsonResponse({
        'code': '0000',
        'data': json.loads(serializers.serialize('json', articles, ensure_ascii=False)),
        'msg': '获取文章列表成功'
    })

那么我们通过浏览器看一下得到的数据~~~


image.png

太棒了,我们已经成功拿到数据了~ 不过,这数据怎么看起来有点...额... 这到底怎么回事? 能不能换种更优雅的方式? ~ 那么请继续关注我!!!下篇文章告诉大家更简单的更优雅的方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基于类的视图 Django中的视图是一个可调用对象,它接收一个请求然后返回一个响应。这个可调用对象不仅仅限于函数,...
    兰山小亭阅读 10,110评论 1 13
  • 一、Django框架前言知识: 1、C/S和B/S的区别: C/S结构软件:客户端/服务端软件,即客户端要自己下载...
    月下独酌123阅读 10,393评论 0 36
  • 这也是很多年前的事。 一小朋友推荐我看朗达·拜恩的《秘密》,这个比我小十多岁的小朋友性格开朗、乐观向善...
    美生活阅读 2,860评论 0 0
  • 本文参加#未完待续,就要表白#活动,本人承诺,文章内容为原创,且未在其他平台发表过。 刚踏进学校大门的时候,内心其...
    一奕丶阅读 7,370评论 57 194
  • Day38 课堂作业 1、SSH批量管理项目一键分发 1.)ssh-keygen非交互式创建秘钥对具体命令: 参数...
    MineG阅读 1,828评论 0 0

友情链接更多精彩内容