📜  Django ORM – 插入、更新和删除数据(1)

📅  最后修改于: 2023-12-03 15:00:26.539000             🧑  作者: Mango

Django ORM – 插入、更新和删除数据

Django ORM(对象关系映射)是Django框架中使用的一种机制,它可以简化从Python代码到数据库的数据交互。本文将介绍如何使用Django ORM插入、更新和删除数据。

连接到数据库

首先,确保在你的Django项目中已经配置了数据库。在Django中,你可以通过在settings.py文件中设置DATABASES来配置数据库连接。

例如,在settings.py中设置SQLite3数据库连接:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
定义模型

在使用Django ORM之前,你需要先定义一个模型(即数据库表)。定义模型可以通过创建Python类完成,其中类的属性将映射到数据库表的列。

例如,定义一个Person模型:

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    age = models.IntegerField()

在上面的例子中,Person模型将映射到名为app_name_person的数据库表中。

插入数据

要向数据库中插入数据,你可以使用模型的objects.create方法,也可以使用模型的save方法。

在使用objects.create方法时,只需要在方法中提供模型的属性即可。例如:

person = Person.objects.create(first_name='John', last_name='Doe', age=30)

将向Person表中插入一个新的记录,记录的属性为first_name='John'last_name='Doe'age=30

使用save方法插入数据时,你需要先创建一个模型实例,然后在保存该实例时向其设置属性。例如:

person = Person()
person.first_name = 'John'
person.last_name = 'Doe'
person.age = 30
person.save()

完成上述操作后,person实例将被保存到Person表中。

更新数据

要更新数据库中的记录,可以直接设置模型的属性并使用save方法保存。也可以使用objects.update方法进行更新。

例如,将John的年龄更新为35:

person = Person.objects.get(first_name='John')
person.age = 35
person.save()

使用objects.update方法更新时,将在指定的筛选条件下更新符合条件的所有记录。例如:

Person.objects.filter(age=30).update(age=35)

将更新所有年龄为30的人的年龄为35。

删除数据

要删除数据库中的记录,可以使用模型的delete方法,也可以使用objects.filter方法。需要注意,使用delete方法会永久删除记录,谨慎使用。

例如,从Person表中删除名为John的记录:

person = Person.objects.get(first_name='John')
person.delete()

或者,从Person表中删除所有年龄为30的人:

Person.objects.filter(age=30).delete()
总结

在上面的例子中,我们介绍了如何使用Django ORM插入、更新和删除数据。通过使用Django ORM,我们可以使用Python代码,与数据库进行交互,无需编写SQL语句。这大大简化了开发和维护过程,提高了开发效率。