世外云

django的orm操作

Django是一个基于Python的高级Web框架,它提供了强大的ORM(对象关系映射)功能,使得我们可以用面向对象的方式操作数据库,在Django中,我们可以使用Django的模型来定义数据库表的结构,然后通过Django的管理器(Manager)来进行数据的增删改查操作。

我们需要创建一个Django模型,在models.py文件中,我们可以定义一个名为Person的模型,包含name和age两个字段:

django的orm操作-图1
from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()

在这个模型中,我们使用了Django提供的Field类来定义字段的类型和属性,CharField表示字符型字段,max_length指定了最大长度为100;IntegerField表示整型字段。

接下来,我们可以使用Django的管理器来进行数据的增删改查操作,Django提供了四种管理器:默认管理器、自定义管理器、QuerySet管理器和Manager,默认管理器是最常用的一种,它包含了一些常用的方法,如all()、filter()、get()等。

我们可以使用默认管理器的create()方法来创建一条新的记录:

person = Person.objects.create(name='Tom', age=20)

使用all()方法可以获取所有的记录:

django的orm操作-图2
persons = Person.objects.all()

使用filter()方法可以根据条件筛选记录:

persons = Person.objects.filter(age__gt=18)

使用get()方法可以根据主键获取一条记录:

person = Person.objects.get(id=1)

使用update()方法可以更新一条记录:

Person.objects.filter(name='Tom').update(age=21)

使用delete()方法可以删除一条记录:

Person.objects.filter(name='Tom').delete()

除了默认管理器,我们还可以使用自定义管理器来扩展或修改默认管理器的功能,自定义管理器需要继承models.Manager类,并重写相应的方法,我们可以创建一个只读的自定义管理器:

class ReadOnlyManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().select_related('user')

在这个自定义管理器中,我们重写了get_queryset()方法,通过select_related()方法实现了级联查询,避免了多次查询数据库的性能问题,我们可以在模型中使用这个自定义管理器:

class Person(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()
    objects = ReadOnlyManager()  # 使用自定义管理器

我们可以使用makemigrations命令生成数据库迁移文件,然后使用migrate命令应用这些迁移文件到数据库中:

python manage.py makemigrations
python manage.py migrate

以上就是Django中ORM表的创建和增删改查方法的示例,通过使用Django的模型和管理器,我们可以方便地操作数据库,提高了开发效率。

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~