美文网首页
Django返回json的几种方法(一)

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

作者: 林木酸瓜 | 来源:发表于2019-05-01 18:41 被阅读0次

    使用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

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

    相关文章

      网友评论

          本文标题:Django返回json的几种方法(一)

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