阅读 81

Django数据库ORM模型使用(增删改查)!Django的ORM模型如何增删改查? ✧*。٩(ˊᗜˋ*)و✧*。 Django初体验

文章目录

前言

如果完全不了解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()
复制代码
文章分类
后端
文章标签