2020/10/30:父子组件和ORM操作
父子组件的调用:
- import导入子组件
- compants注册子组件
- 注册过的子组件当做标签来使用
子组件给父组件传参:
- 父组件的子组件标签里写上要传的数据(:子组件的参数名=父组件的参数名)
- 在子组件注册(props)
- 使用父组件传过来的参数
父组件给子组件传参:
- 子组件先用给定的方法把数据传递给父组件(this.$emit(“要发送的函数名”,“要传递的参数”))
- 父组件的子标签里来接收数据(@子组件的方法=“父组件的方法”)
- 在methods里接收传过来的val并赋值
父组件里都是子组件方法在前父组件方法在后
ORM操作数据库查询:
book_obj = BookModel.objects.get(title="西游记") # 单一查询,如果结果不存在报错
book_obj = BookModel.objects.filter(title="西游记") # 单一查询,如果结果不存在返回为空
book_obj = BookModel.objects.all(title="西游记") # 查询所有,有多少返回多少,不存在返回None
book_obj = BookModel.objects.count(title="西游记") # 返回查询结果的数量
book_obj = BookModel.objects.exclude(title="西游记") # 返回除满足条件以外的
"""
a.contains 包含
"""
book_obj = BookModel.objects.filter(title__contains="记") # 查询结果包含“记”的
"""
b.startswith 以什么开头
c.endswith 以什么结尾
"""
book_obj = BookModel.objects.filter(title__startswith="西") # 查询以“西”开头的
book_obj = BookModel.objects.filter(title__endswith="记") # 查询以“记”结尾的
"""
isnull 是否为空
"""
book_obj = BookModel.objects.filter(title__isnull=Flase) # 查询title不为空的,=True是为空
"""
in 满足...
range 相当于between...and...
"""
book_obj = BookModel.objects.filter(id__in=[1,3,5,7,9]) # 查询ID为1、3、5、7、9的id
book_obj = BookModel.objects.filter(id__range=[10,20]) # 查询范围在10-20的id
"""
gt 大于 >
gte 大于等于 >=
lt 小于 <
lte 小于等于 <=
exclude 不等于 !=
"""
book_obj = BookModel.objects.filter(id__gt=10) # 查询ID大于10的数据
book_obj = BookModel.objects.exclude(id=10) # 查询ID不等于10的数据
# year,month,day,week_day,hour,minute,second:对日期时间类型的属性进行计算
book_obj = BookModel.objects.filter(pub_date__year=1997) # 查询1997年出版的书
book_obj = BookModel.objects.filter(pub_date__get=date(1997.1.1)) # 查询1997年1月1日以后出版的书
"""
比较两个对象之间的关系用F对象(F对象可以进行运算)
"""
book_obj = BookModle.objects.filter(read__gte=F("comment")) # 查询阅读量等于评论量的对象
book_obj = BookModle.objects.filter(read__get=F("comment") * 2) # 查询阅读量等于评论量二倍的对象
"""
与逻辑运算符连用使用Q对象。 或(|)、与(&)、非(~)
"""
book_obj = BookModle.objects.filter(Q(read__get=20) | Q(pk__lt=3)) # 查询阅读量为20或者id小于3的对象
"""
使用aggregate()过滤器调用聚合函数;聚合函数包括:Avg平均,Count数量,Max最大,Min最小,Sum求和
"""
book_obj = BookModle.objects.aggregate(Sum("read")) # 返回阅读量的和
"""
使用order_by对结果进行排序
"""
book_obj = BookModle.objects.all().order_by("read") # 按阅读量进行升序排序
book_obj = BookModle.objects.all().order_by("read") # 按阅读量进行降序排序