理论:Json格式数据及视图的Response

json格式的数据本质上是一个字符串

常见的两种json格式数据形式:

1.类似字典形式

'{

        'id':1001,

        'name'=Tom'

}'

2.类似字典形式的数组

'[

        {'id':1001,'name':'Toma','age':12},

        {'id':1002,'name':'Tomb','age':14},

        {'id':1003,'name':'Tomc','age':16}

]'
get请求:request.query_params        post请求:request.data

Response可以将字典形式的{'msg': 'success'}自动转换成json字符串的形式
Response需要附加一个状态码,status=
class MyView(APIView):
    def get(self, request):
        print(request.query_params)
        return Response({'msg': 'success'}, status=200)

    def post(self, request):
        print(request.data)
        #   Response可以将字典形式的{'msg': 'success'}自动转换成json字符串的形式
        #   Response需要附加一个状态码,status=
        return Response({'msg': 'success'}, status=201)

目前在DRF中,我们所使用最多的就是Response这个方法,经常使用已经序列化好的数据结合Response返回

{    # 已经序列化好的数据 是字典或数组字典的形式 外部没有引号

        'id':1001,

        'name'=Tom'

}

ORM操作查询到的是一个查询结果集,也是python的对象,python就是面对对象编程的

用class类方法定义的视图是一个抽象类,用抽象类定义出来的对象是一个具体的实例对象,利用ORM操作获取到的数据是一个具体的实例对象,是类对象格式的复杂数据   

序列化:ORM操作得到的结果 转化为 简单格式的数据(字典,字典列表格式

反序列化:json格式的数据 转化为 ORM操作得到的结果(python的对象

Response函数的第一个参数位置上,这个data不能是复杂结构的数据,比如ORM查询到的数据,ORM的数据需要提取出来成为Python的数据类型或者使用序列化方式将其加工才可以使用Response进行返回

QuerySet是什么:

Django的ORM中存在查询集的概念。

查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。

当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表):

  • all():返回所有数据。

  • filter():返回满足条件的数据。

  • exclude():返回满足条件之外的数据。

  • order_by():对结果进行排序。

对查询集可以再次调用过滤器进行过滤,如

BookInfo.objects.filter(bread__gt=30).order_by('bpub_date')

也就意味着查询集可以含有零个、一个或多个过滤器。过滤器基于所给的参数限制查询的结果。

从SQL的角度讲,查询集与select语句等价,过滤器像where、limit、order by子句。

判断某一个查询集中是否有数据

  • exists():判断查询集中是否有数据,如果有则返回True,没有则返回False。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值