ORM
orm对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。可以简单理解为翻译机。
查询:
student.objects.all()
all()—->查询所有的数据
filter()—->查询满足条件的,获取值为空返回空
get()—–>获取数据必须要有值不然会报错,只能返回一个数据
exclude()——->不满足的不包含
order_by(‘-id’)—–>降序排列
oder_by(‘id’)—->升序
values()———->返回字典列表
first():返回查询集中的第一个对象
last():返回查询集中的最后一个对象
count():返回当前查询集中的对象个数
exists():判断查询集中是否有数据,如果有数据返回True,没有返回False
pk:代表主键,也就是id。filter(pk=1)
gt:大于 gte:大于等于 lt:小于 lte:小于等于
聚合函数
aggregate()函数返回聚合函数的值
Avg:平均值
Count:数量
Max:最大
Min:最小
Sum:求和
例如: Student.objects.aggregate(Max(‘age’))
字段类型
选项
字段属性
选项 | 说明 |
---|---|
null | 数据库中对应的字段是否允许为NULL,默认为False |
blank | 后台模型管理验证数据时,是否允许为NULL,默认为False |
choices | 设定字段的选项,各元组中的第一个值是设置在模型上的值,第二值是人类可读的值 |
db_column | 字段对应到数据库表中的列名,未指定时直接使用字段的名称 |
db_index | 设置为True时将在该字段创建索引 |
db_tablespace | 为有索引的字段设置使用的表空间,默认为DEFAULT_INDEX_TABLESPACE |
default | 字段的默认值 |
editable | 字段在后台模型管理或ModelForm中是否显示,默认为True |
error_messages | 设定字段抛出异常时的默认消息的字典,其中的键包括null、blank、invalid、invalid_choice、unique和unique_for_date |
help_text | 表单小组件旁边显示的额外的帮助文本。 |
primary_key | 将字段指定为模型的主键,未指定时会自动添加AutoField用于主键,只读。 |
unique | 设置为True时,表中字段的值必须是唯一的 |
verbose_name | 字段在后台模型管理显示的名称,未指定时使用字段的名称 |
不满足年龄等于16的
# stus = Student.objects.exclude(s_age=16)
查询年龄filter
stus=Student.objects.filter(s_age=16)
按年龄排序stus = Student.objects.order_by('s_age')
获取所有学生(按照id降序)中第一个学生信息
stus=Student.objects.all().order_by('-id')[0]
stus = Student.objects.all().order_by('-id').first()
获取所有学生(按照id降序)中第最后一个学生信息
stus=Student.objects.all().order_by('-id').last()
模糊查询姓名中包含张的
stus=Student.object.filter(s_name__contains='张')
获取以张开头的姓名
stus = Student.objects.filter(s_name__startswith='张')
获取以飞结尾的姓名
stus = Student.objects.filter(s_name__endswith='飞')
gt:大于 gte:大于等于 lt:小于 lte:小于等于
stus = Student.objects.filter(s_age__gt=16)
stus = Student.objects.filter(s_age__lt=16)
查询id等于1,2的学生信息
stus=Student.objects.filter(id__in=[1,2])
查询姓名中包含张,并且年龄大于16
stus=Student.objects.filter(s_name__contains='张',s_age__gt=16)