• django-7-django模型系统


    <<<常用的模型字段类型>>>
    https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types
     InterField
     CharFiled
     TestFiled
     DateFiled
     AutoFiled(primary_key=True)自增,不指定主键会自动创建
      在使用的时候何以设置DateField.auto_now每次自动保存对象的时候自动设置改字段为当前时间,设置DateField.auto_now_add当对象第一次被创建时自动设置当前时间
     DateTimeFiled
    <<<常用的字段参数>>>
    https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-options
    primary_key
    auto_dreated
    unique指定是否为唯一
    auto_now
    <<<常用查询>>>
     通过模型类上的管理器来构造
     模型类上的管理器(class.objects)
     queryset (惰性,,没有操作数据库)表示数据库中对象的集合,等同于select 语句
      query 获取mysql 语句
     first() 获取第一条,返回对象
     last() 获取最后一条,返回对象
     get(**kwargs) 根据给定的条件获取一个对象,如果有多个对象符合则报错
     all() 获取所有记录
     filter(**kwargs) 根据给定的条件获取过滤后的queryset,多个条件用','连接
     exclude(**kwargs) 作用和filter相反,去除不符合条件的对象
     多条件的or连接
     from django.db.models import Q
     Q(age=1) | Q(age=0)
     返回某个字段
     values(*fileds) field指定字段,返回一个queryset,返回一个‘字典列表’
     only(*fields) 与values差不多,返回queryset,‘对象列表’,必须带上主键
     defer(*field) 和only功能相反,用法一样,返回一个queryset,对象列表,排除
     排序
     order_by(*fields) 根据给定的字段来排序
      如果要反序就在field前加'-'
     切片 和python切片用法相似,不支持复索引,数据大的时候不用步长
     ***切片后不再支持附加条件与排序
     *多字段排序有什么用?*
     常用查询条件
     > < =
     通过'__' 使用
     exact 默认等于
     iexact 不区分大小写的匹配
     contains
     icontains 不区分大小写
     in name__in = ['aa','ss','dd']
     range age__range = (18, 20)
     gt 大于
     gte 大于等于
     lt
     lte
     startswith
     istartswith
     endswith
     iendswith
     isnull True False
     聚合
     django.db.models import Count, Avg, Max , Min, Sum(通过管理器的aggregate方法)
     count 计数
     平均 aggregate(age_avg = Avg('age'))
     分组
     查询男生有几个,女生有几个
     结合 values , annotate(num = Count('sex'))
     **复杂查询**
     from django.db.models.functions import lower
     order_by(lower('name').desc())
     
  • 相关阅读:
    [No000037]操作系统Operating Systems操作系统历史与硬件概况History of OS & Summaries!
    [No000036]操作系统Operating Systems系统调用的实现System_Call
    [No000035]操作系统Operating System之OS Interface操作系统接口
    [No000034]知乎-长期接收碎片化知识有什么弊端?
    [No000033]码农网-如何锻炼出最牛程序员的编码套路
    [No000032]程序员的年龄天花板
    [No000031]操作系统 Operating Systems 之Open the OS!
    [No000030]程序员节发点别的:中国教育整个把人脑子搞坏了-易中天
    [No00002F]3步,教你如何分解需求
    [No00002E]关于大数据,你不知道的6个迷思
  • 原文地址:https://www.cnblogs.com/wmkpy/p/10567458.html
Copyright © 2020-2023  润新知