三阶段day03-视图views之查询、表格一对一关联
day03
【三阶段day03-视图views之查询、表格一对一关联】增删改查、模型定义与迁移、一对一关联
查询
filter(条件): 查询满足条件的信息
例如:模型名.objects.filter()
exclude(条件): 过滤掉满足条件的信息
例如:模型名.objects.exclude()
count(条件): 计算个数
exists(): 是否存在
例如:模型名.objects.filter().exists()
all(): 查询所有
例如:模型名.objects.all()
get(条件): 查询满足条件的唯一一个对象信息
例如:模型名.objects.get()
first(): 结果中的第一个
例如:模型名.objects.filter().first()
last(): 结果中的最后一个
例如:模型名.objects.last()
values(): 以键值对的形式获取对象信息
例如:模型名.objects.filter().values()
order_by(对象属性): 排序
例如:模型名.objects.filter().order_by()
运算符
模糊查询:contains,icontains,startwith,endwith
例如:模型名.objects.filter(name__contains='小')
例如:模型名.objects.filter(name__startwith='小')
例如:模型名.objects.filter(name__endwith='小')
大小于:gt,gte,lt,lte
例如:模型名.objects.filter(age__gt=18)
范围:in
例如:模型名.objects.filter(id__in=[1,2,3,4,5])
主键:pk
例如:模型名.objects.filter(pk=...)
聚合aggragate
from django.db.models import Max,Min,Avg,Count,Sum
模型.objects.all().aggragate(Avg('age'))
F()/Q()
F():对字段进行计算
Q():与、或、非
from django.db.models import Q,F
stu1 = Student.objects.filter(Q(age=18),Q(gender=1))并且
stu2 = Student.objects.filter(Q(age=18)|Q(gender=1))或
stu3 = Student.objects.filter(Q(age=18)&Q(gender=1))并且
stu4 = Student.objects.filter(~Q(age=18))非stu=Student.objects.filter(chinese__gt=F('math')+10).first()
模型一对一
定义一对一: OneToOneField()class A:
b1 =OneToOneField(B)class B():
name = CharField()
A与B通过b1关联起来
正向查询,已知A对象a,查询B对象: a.b1
stu = A.objects.filter(address='美国').first()
stui=stu.b1.name反向查询,已知B对象b,查询A对象: b.a
stu = B.objects.filter(name='小明').first()
stui = stu.a.address
推荐阅读
- tableView|tableView 头视图下拉放大 重写
- mysql中视图事务索引与权限管理
- 亲子时间管理践行三阶段第14天
- (2018-05-12.Python从Zero到One)6、(Django)Django视图__1.3.2定义视图
- mysql视图简介与使用
- SAP|SAP UI5 初学者教程之十四 - 嵌入视图的使用方式试读版
- drf|drf 的几个组件
- View视图跟随手指移动
- 视图寻找其所在的ViewController
- Android|Android应用TranslateAnimation移动之后,利用视图的setLayoutParams从新定位