Django笔记05

单表操做html

新增数据
models.类名.objects.create()
models.类名().save()
修改
models.类名.objects.filter(条件).update()
obj = models.类名.objects.filter(条件)
obj.属性 = 值
obj.save()
删除
models.类名.objects.filter().delete()
查询
all()  查询全部结果
filter  查询符合条件的数据
get  返回一个符合条件的数据
exclude  返回不匹配的数据
order_by  排序
reverse  对查询结果反向排序
count   计数
first  返回第一条数据
last  返回最后一条数据
exists  判断
values  返回queryset对象里面是字典
values_list  返回queryset对象里面是元组
dstinct  去重

返回queryset对象的方法
  all  filter  exclude  order_by  reverse  distinct
特殊的queryset
  values  values_list
返回具体对象
  get  first  last

基于双下划线模糊查询
in  值是否在一个列表中
gt  大于
lt  小于
gte  大于等于
lte  小于等于
range  值是否在一个范围内
contains 
icontains  
startswith
pub_date_year  按年查询
https://www.cnblogs.com/liuqingzheng/articles/9472723.html

多表关联数据库

建立多表模型django

  使用OneToOneField和ForeignKey模型表的字段后面会自动增长_id函数

  ManyToManyField:会自动建立第三张表code

  一对一的关系:OneToOneFieldhtm

  一对多的关系:ForeignKey对象

  多对多的关系:ManyToManyFieldblog

添加表记录排序

  多对多rem

  add 添加记录  能够传入对象,id

  remove 删除记录  能够传入对象,id

  clear 清空记录  没有参数

  set 更新记录  传入列表

基于对象的跨表查询

  一对一:正向:按字段  反向:按表名小写

  一对多:正向:按字段  反向:按表名小写_set.all()

  多对多:正向:按字段  反向:按表名小写_set.all()

  基于对象的查询是屡次查询(子查询)

基于双下划线的跨表查询

  正向按字段,反向按表名小写

聚合查询

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

  models.类名.objects.all().aggregate(聚合函数)

分组查询

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

  models.类名.objects.annotate(别名=聚合函数)

F查询:查询的条件做用两边都来自于数据库而非手动输入的值

Q查询:可以将filter内部默认的and关系转换成须要的

https://www.cnblogs.com/liuqingzheng/articles/9499252.html

相关文章
相关标签/搜索