zoukankan      html  css  js  c++  java
  • 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是延迟获取的, 只有迭代结果集或者获取单个对象属性的时候,才会查询数据库 这也被称为懒查询 (单纯的filter/all/exclude查询并不会调用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') 正序是正常,倒叙需要在字段前加
    4 Q 对象可以对多对象条件进行封装, 适用于逻辑运算符 ( and or not )
    七 补充
    1 针对返回前端的话基本都需要加values()对象,因为这是返回ValuesQuerySet对象 而不是模型实例对象 循环时是以字典形式建议使用
     
  • 相关阅读:
    Oracle 手工创建awr快照,获取报告
    Oracle块修改跟踪功能
    Oracle 反向索引(反转建索引) 理解
    oracle聚簇表的理解 (转自:https://blog.csdn.net/gumengkai/article/details/51009345 )
    Fix the iOS code signing issue when using Jenkins
    ios系统crash文件分析
    python版本管理
    python requirements.txt
    android makefile protoc路径添加
    初识tflite源码
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/12653180.html
Copyright © 2011-2022 走看看