首页 > 其他 > 详细

常用查询及表关系的实现

时间:2019-12-07 19:40:45      阅读:83      评论:0      收藏:0      [点我收藏+]

2019-12-06

我的笔记

模型对应一张表,

   --里面有字段,

   --字段里面有字段类型。

常用的字段类型映射关系:

int---IntegetField

varchar---CharField

longtext---TextField

date---DateField

datetirne----DatelimeField

Field的常用参数:

primary_key:指定是否为主耀,

unique:指定是否唯-
null:指定是否为空,默认为False,

blank:等于True时form表单验证时可以为空,默认为False,

default:设置默认值。

Daterield.auto now:每次修改都会格当前时间更新进去,只有调用,QuerySet.update方法将不会调用。这个参数只是Date和DateTimel以及TimModel.save0方法才会调用e类才有的。

Datefield.auto now_add:第一次添加进去,都会将当前时间设置进去。以后修改,不会修改这个值

 

老师笔记

1、常用的模型字段类型
https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types
2,字段的常用参数
官方文档:https://docs.djangoproject.com/en/2.1/ref/models/#fields/field-option.
案例:
3,常用查询
通过模型类上的管理器来构造Queryset

     -模型类上的管理器是啥?

       模型类.objects

     -Queryset表示数据库中对象的集合。
       等同于select语句。惰性的
案例:

      -first()获取第一条返回的是对象

      -last()获取最后一条返回的也是一个对象 I

思考:排序规则?默认通过主键。通过meta设置
      -get(**kwargs)根据给定的条件,获取一个对象,如果有多个对象符合,则报错
      -all()获取所有记录返回的是queryset
      -filter(**kwargs)根据给定的条件,获取一个过滤后的queryset,多个条件则用and连接

      -exclude(**kwargs)跟filter使用方法一致,作用相同,它是排除。

      -多条件的OR连接用到Q对象,django.db.models.Q
      -values(*fields)返回一个queryset,返回一个字典列表,而不是数据对象。
      -only(*fiels)返回queryset,对象列表,注意only一定包含主键字段
      -defer(*fields)返向一个Queryset,作用和only相反

      -order by(*fields)根据给定的字段来排序默认是顺序,字段名前加上‘-’,代表反序。

      -切片和python的列表切片用法相似,不支持负索引,数据量大时不用步长
      ***切片过后,不再支持,附加过滤条件与排序

-常用查询条件filter,exclude,get

exact,iexact ,contains ,icontains ,in ,range ,gt ,gte,lt ,Ite ,startswith ,istartswith ,endswith, iendswith ,isnull True False  ---对应IS NULL Is NOT NULL

    -istartswith

      from django.db.models import count,Avg,Max,Min,Sum

      通过queryset的aqqreqate方法

             student.objects.aggregate(ageavg-Avg(‘age‘))#计算平均年龄
      -count

      -平均值Avg
-分组,聚合
      结合values,annotate和聚合方法一起实现

      查询男生有几个,女生有几个
4,表关系实现
       结合Values,annotate和聚合方法一起实现
       查询男生有几个,女生有几个

 

 

 

 

常用查询及表关系的实现

原文:https://www.cnblogs.com/youshiqiezhenxi/p/12000141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!