前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django-7-django模型系统

django-7-django模型系统

作者头像
py3study
发布2020-01-17 11:47:07
7870
发布2020-01-17 11:47:07
举报
文章被收录于专栏:python3
代码语言:javascript
复制
 <<<常用的模型字段类型>>>
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())
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档