Django——2.ORM对象关系映射之对数据库的增删改查操作

模型的操作

先在终端中输入:python .\manage.py shell

进入了虚拟环境后,在输入:from Item_2.models import Card

导入模型后,可对数据库中创建的表进行增删改查等操作。

输入:card=Card(name='adc_2',msg='今天好,不好,好?',rating=22) 

在输入:card.save()

则在数据库中可以看到我们添加的数据:

接下来我在添加几个数据,方便后续操作。

管理器赋予了Django模型操作数据库的能力

card.objects----->(模型.管理器类型就组成了管理器)

输入:Card.objects.all()     #就可以查看所有的信息

QuerySet就是数据集,提供了查询及嵌套查询的能力

不做筛选

all()   查询所有,不做任何筛选

做筛选

filter()  可以筛选数据

eg:我们筛选出,name为abc_1的数据

注意:我们只要不去使用这个data 就不会数据库中查询数据,也就是说data只是保存了Card.objects.filter(name='python')这个表达式而已。

特殊查询——startswitch

查询以什么为开头的数据

相当于原生的sql语句:

select * from ITEM_2_CARD where name like 'abc%';

特殊查询——contains

查询的数据中包含你要的就会返回出来

相当于原生的sql语句:

select * from ITEM_2_CARD where name like '%_%';

还可以进行嵌套查询,eg:查询name以abc开头,rating等于19的数据。

F查询于Q查询

输入:from django.db.models import F     #要先引入

输入:Card.objects.filter(msg__contains='name')

在这里我们将name看成为一个字符串,在msg中没有name这个字符串。

输入:Card.objects.filter(msg__contains=F('name'))

我们用F查询,这里将name看成为一个变量,看msg中有没有name的信息,这是针对于同一条的数据进行查询的。

输入:from django.db.models import Q

输入:Card.objects.filter(Q(msg__contains=F('name')) | Q(rating =22))

用Q查询,可以将多个条件连接起来。通过与或非(& | ~)将条件连接起来,如下:

将name为ABC的数据中的rating改为99

输入:Card.objects.filter(name='ABC').update(rating=99)

修改了一条数据,在mysql中看出,以修改完成

将id为5的数据删除掉

输入:card=Card.objects.get(id=5)    #获取到id为5的数据

输入:card.delete()              #将其删除

在mysql中,可看出已删除

删除多条数据,可以通过filter()过滤查找到后,在通过delete()一次删除。

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值