前言
如果完全不了解Django的ORM模型建议你先看一下博主写的ORM模型的入门
当我们使用ORM模型创建好数据库后,就需要开始增删改查的操作。
对数据库的增删改查前,我们先要引入ORM模型,如果为同一个APP下的ORM模型引入方式如下from .models import 类名
,如果不同类型,只需加入APP名即可from APP名.models import 类名
为了方便下列暂时,我当前创建的表如下
class People(models.Model):
角色 = models.CharField(max_length=20)
介绍 = models.TextField()
当前时间 = models.DateTimeField(auto_now=True)
增
直接使用类名,其中的数据中为表头=内容
,并且使用.save()
方法保存表即可
people = People(角色='寻觅', 介绍='天真无邪')
people.save()
保存成功后会返回一个对象,其中包含数据保存到的pk(主键)值
查
这里简单介绍一些查的方法,之后我会专门写一篇文章来详细讲述各种条件查询的方式。
查数据有多重方法可以使用,分别是.get()
、.filter()
与.exclude()
。我们还可以使用all()
查询所有数据。
简单查询我们可以使用.get(表头名=值)
的形式,其中有一向比较特殊的就是pk,pk相当于主键的表头,无论主键的表头叫什么都可以使用pk进行表示。
显示数据
我们查询出来默认会是一个对象,如何让其显示为数据库中的数据,这里有两种方式,其一是使用对象.表头
,另一种方式是在模型中添加def __str__(self):
这个魔法方法。
比如说我们可以将下列代码添加到模型中,我们查询出来的数据即可直接获得下列形式。但同时对象.表头
的形式也同样能正常使用
def __str__(self):
return '角色:{}, 介绍:{}, 更新时间:{}'.format(self.角色, self.介绍, self.当前时间)
uid = People.objects.get(pk=19)
print(uid)
print(uid.介绍)
name = People.objects.get(角色='弓兵')
print(name)
print(name.介绍)
all_ = People.objects.all()
print(all_)
这里需要注意的是,如果在模板中使用对象.表头
的方式调用的时间会自动变成当前时区的时间,但使用__str__
读取的时间不会自动变化时区
删
删除数据我们需要先使用查询数据的方式查询到指定数据在使用.delete()
即可删除
uid = People.objects.get(pk=19)
uid.delete()
改
修改数据同样需要先找到数据,根据找到的对象.表头 = 修改内容
即可修改数据和添加数据相同都要使用.save()
方法保存数据
name = People.objects.get(角色='弓兵')
name.介绍 = '不会近战的弓兵不是好弓兵'
name.save()