Bootstrap

Django框架基础学习(三) ----数据库操作

ORM增删改查

添加的俩种方式

  1. save()在这里插入图片描述
  2. 通过模型类保存
    在这里插入图片描述
    注意:添加有外键的信息操作如下:
herozhu = HeroInfo.objects.create(
	hname = "猪八戒",
	hgender = 0,
	hdesc = 'houhouhou',
	hbook = book
)

herosha = HeroInfo.objects.create(
	hname = "沙悟净",
	hgender = 1,
	hdesc = '呵呵',
	hbook = book
)

在这里插入图片描述
修改数据
修改更新有两种方法
1) 修改模型类对象的属性,然后执行save()方法
在这里插入图片描述
2)使用模型类.objects.filter().update(),会返回受影响的行数
在这里插入图片描述
此时数据库内容都修改成功
在这里插入图片描述
删除数据
删除有俩种方法
1)模型类对象delete
在这里插入图片描述
此时数据库内容:
在这里插入图片描述
2)模型类.objects.filter().delete()
在这里插入图片描述
此时数据库内容:
在这里插入图片描述
基本查询
使用方法:

get:查询单一结果,如果不存在会抛出DoesNotExist异常,如果存在多个结果会报MultipleObjectsReturned异常

all:查询多个结果

count:查询结果数量

在这里插入图片描述
过滤查询
查询的时候 __ (双下划线)表示判断

  • filter:过滤出多个结果
  • exclude:排除掉符合条件剩下的结果
  • get:过滤单一结果
  • exact:表示判断相等
  • contains:表示是否包含
  • startswith和endswith:以指定开头或者结尾
  • isnull:是否为null
  • exclude:过滤器
  • in:是否包含在范围内
  • gt:大于
  • gte:大于等于
  • lt:小于
  • lte:小于等于
    在这里插入图片描述
    在这里插入图片描述
    F和Q对象
    1)F:
    之前的查询都是对象的属性与常量值比较,两个属性怎么比较呢? 答:使用F对象,被定义在django.db.models中。
    语法:F(属性名)
导包:from django.db.models import F,Q

在这里插入图片描述
2)Q:

多个过滤器逐个调用表示逻辑与关系,同sql语句中where部分的and关键字。
实现mysql里的not and or
在这里插入图片描述
聚合函数和排序函数
1)聚合函数:
使用aggregate()过滤器调用聚合函数。聚合函数包括:Avg平均,Count数量,Max最大,Min最小,Sum求和,被定义在django.db.models中。
在这里插入图片描述
排序:
使用order_by对结果进行排序
在这里插入图片描述

;