drf-apiview解读系列二

一 引用模块类
1 apiview 核心继承类,用来处理逻辑
2 内部定义方法必须传入self(实例化对象)+request(封装好的request对象)
二 request重要属性
1 request.data 表单属性,可以通过get('key')函数获取指定值
2 request.META 返回一个包含了所有http头部信息的字典
3 request.query_params 获取url拼接的k-v信息 url拼接如下 eg /test/list?key1=val1&key2=val2
4 request.path 打印访问的url.py配置的相对访问路径
三 Response类
1 构造体 Response(data, status=None, headers=None)
2 说明 data:响应的序列化数据 status 状态码 headers 构造头部
四 models基本定义
0 object
基本语法 queryset= 类名.objects.方法
概念 1 管理器对象 2 用于模型对象和数据库交互 3 可以重写 get_queryset方法 实现自定义object 4 通过上面的基本语法生成queryset对象
1 queryset
1 QuerySet类似于Python中的list,list的一些方法QuerySet也有,比如切片,遍历
2 QuerySet是延迟获取的,只有当用到这个QuerySet时,才会查询数据库求值
3 查询到的QuerySet又是缓存的,当再次使用同一个QuerySet时,并不会再查询数据库,而是直接从缓存获取(不过,有一些特殊情况)
五 models类常见操作
1 新增 user.object.create(k=v)
2 删除 user.object.filter(k=v).delete()
3 更新
单条更新 user.object.fiter(k=v).update(k=v)
有更新/没有插入 user.object.update_or_create(k=v)
六 查询
1 user.object.filter(k=v).values(k) 按照条件进行查询
2 user.object.all().values() 全部查询//不加values()代表返回全部字段
3 user.object.all().order_by('nid') 正序是正常,倒叙需要在字段前加
七 补充
1 针对返回前端的话基本都需要加values()对象,因为这是返回 ValuesQuerySet对象 而不是模型实例对象 循环时是以字典形式建议使用
 

猜你喜欢

转载自www.cnblogs.com/danhuangpai/p/12653180.html