详解Django的 save() 函数:保存对象

  • Post category:Python

Django的save()函数用于保存或更新数据库中的对象。其一般用于model层或者form层,操作数据库的方式是更新数据或者创建一份新的数据。下面是save()函数的使用方法的完整攻略。

保存对象

在django中,我们可以通过创建、修改Model对象,进行数据的读取,写入和更新。我们使用的save()方法是其中一种保存修改的方式。

save()方法处理的是数据的持久化存储,即把我们定义的Model对象转化为数据库数据,并把数据(按照字段的类型以及存储策略)存储到数据库中。

使用方法

下面是save()函数的使用方法:

创建一个Model对象

首先,我们需要先创建一个model对象,如下:

class UserInfo(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()
    mobile = models.CharField(max_length=20)

修改对象数据

我们可以通过实例化一个对象来修改数据。

user = UserInfo.objects.get(pk=1)
user.name = 'Bob'
user.age = 20
user.mobile = '13300001111'

这里通过实例化一个对象来修改数据,然后就可以使用save()方法将数据更新到数据库中。

user.save()

创建对象数据

user = UserInfo(name='Alice', age=22, mobile='13500002222')
user.save()

改进数据模型

如果我们在模型中添加了一些字段,而旧的数据中没有这些字段,而新创建的对象中却有这些字段,这时候如果仍然调用save方法,将会因为缺失这些字段而导致异常。

为了避免这种情况,我们需要设置默认值,而可以使用django提供的默认值。

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()
    comment = models.TextField(blank=True, null=True)
    pub_date = models.DateField(auto_now_add=True)

blog = Blog(name='Django Rocks', tagline='django is my favourite web frameworks', comment='Django is very easy to learn')
blog.save()

在上面的代码中,如果我们在创建的对象中没有添加comment这个字段,系统会为这个字段自动填入一个空值。

示例

以下两个示例演示了如何使用save()函数保存或更新数据库中的对象。

示例1:保存数据

首先,我们需要创建一个model对象:

class UserInfo(models.Model):
    name = models.CharField(max_length=50)
    age = models.IntegerField()
    mobile = models.CharField(max_length=20)

然后,我们可以通过以下方式进行数据的保存:

user = UserInfo(name='Bob', age=20, mobile='13300001111')
user.save()

在这个实例中,我们创建了一个UserInfo对象,并将其保存到数据库中。这里我们设置了name、age和mobile等字段的值。最后我们调用了save()方法将该对象保存到数据库中。

示例2:更新数据

首先,我们需要先获取需要更新的对象:

user = UserInfo.objects.get(pk=1)

然后,我们可以通过以下方式更新数据:

user.name = 'Alice'
user.age = 22
user.mobile = '13500002222'
user.save()

在这个实例中,我们获取了id为1的UserInfo对象,然后我们将其name、age和mobile等字段的值分别修改为’Alice’、22和’13500002222’,最后我们调用了save()方法将该对象保存到数据库中。

以上就是关于Django的save()函数的作用与使用方法的完整攻略。