更新时间:2023-05-18 来源:黑马程序员 浏览量:
Django的ORM(对象关系映射)是一种将数据库中的数据映射到Python对象中的技术,它使得开发者可以通过使用Python代码来操作数据库,而无需直接编写SQL语句。ORM还提供了一些便捷的功能,例如查询优化、数据验证等。
以下是Django ORM的一些基本用法示例:
from django.db import models class Person(models.Model): name = models.CharField(max_length=50) age = models.IntegerField()
上述代码中,我们定义了一个 Person 类,它继承了django.db.models.Model类,并定义了两个属性name 和age,它们分别对应数据库中的表格中的两个列。
person = Person(name='Alice', age=25) person.save()
我们在以上代码中创建了一个Person对象,并调用了save()方法将它保存到数据库中。
people = Person.objects.all() for person in people: print(person.name, person.age)
我们使用Person.objects.all()方法查询了数据库中的所有Person对象,并遍历了这些对象并打印了它们的属性。
person = Person.objects.get(name='Alice') person.age = 26 person.save()
我们使用Person.objects.get()方法在上述代码中获取了一个名为Alice的Person对象,并将它的年龄属性更新为26,然后调用save()方法将更新保存到数据库中。
person = Person.objects.get(name='Alice') person.age = 26 person.save()
上述代码中,我们使用Person.objects.get()方法获取了一个名为Alice的Person对象,并调用delete()方法将它从数据库中删除。
adults = Person.objects.filter(age__gte=18) for adult in adults: print(adult.name)
我们可以使用Person.objects.filter()方法对数据库进行过滤,只选出年龄大于等于18岁的Person对象,并遍历打印了它们的姓名。
class Book(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey(Person, on_delete=models.CASCADE)
上述代码中,我们定义了一个Book类,它有一个名为author的外键关联到Person模型。
books = Book.objects.filter(author__name='Alice') for book in books: print(book.title)
上述代码中,我们使用Book.objects.filter()方法对数据库进行过滤,选出所有作者名为Alice的Book对象,并遍历打印了它们的标题。
这只是Django ORM的基本用法示例,实际上Django ORM 还有很多高级用法和功能,例如聚合、多对多关系、多级关联查询等。