首页常见问题正文

Django的orm是干什么的?

更新时间:2023-05-18 来源:黑马程序员 浏览量:

IT培训班

  Django的ORM(对象关系映射)是一种将数据库中的数据映射到Python对象中的技术,它使得开发者可以通过使用Python代码来操作数据库,而无需直接编写SQL语句。ORM还提供了一些便捷的功能,例如查询优化、数据验证等。

  以下是Django ORM的一些基本用法示例:

      1.创建模型类

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,它们分别对应数据库中的表格中的两个列。

  2.插入数据

person = Person(name='Alice', age=25)
person.save()

  我们在以上代码中创建了一个Person对象,并调用了save()方法将它保存到数据库中。

  3.查询数据

people = Person.objects.all()
for person in people:
    print(person.name, person.age)

  我们使用Person.objects.all()方法查询了数据库中的所有Person对象,并遍历了这些对象并打印了它们的属性。

  4.更新数据

person = Person.objects.get(name='Alice')
person.age = 26
person.save()

  我们使用Person.objects.get()方法在上述代码中获取了一个名为Alice的Person对象,并将它的年龄属性更新为26,然后调用save()方法将更新保存到数据库中。

  5.删除数据

person = Person.objects.get(name='Alice')
person.age = 26
person.save()

  上述代码中,我们使用Person.objects.get()方法获取了一个名为Alice的Person对象,并调用delete()方法将它从数据库中删除。

  6.过滤数据

adults = Person.objects.filter(age__gte=18)
for adult in adults:
    print(adult.name)

  我们可以使用Person.objects.filter()方法对数据库进行过滤,只选出年龄大于等于18岁的Person对象,并遍历打印了它们的姓名。

  7.外键关联

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Person, on_delete=models.CASCADE)

  上述代码中,我们定义了一个Book类,它有一个名为author的外键关联到Person模型。

  8.关联查询

books = Book.objects.filter(author__name='Alice')
for book in books:
    print(book.title)

  上述代码中,我们使用Book.objects.filter()方法对数据库进行过滤,选出所有作者名为Alice的Book对象,并遍历打印了它们的标题。

  这只是Django ORM的基本用法示例,实际上Django ORM 还有很多高级用法和功能,例如聚合、多对多关系、多级关联查询等。

分享到:
在线咨询 我要报名
和我们在线交谈!