📜  Django模型(1)

📅  最后修改于: 2023-12-03 14:40:48.170000             🧑  作者: Mango

Django模型介绍

Django是一个流行的Python Web框架,它提供了一个强大的对象关系映射(ORM)工具,称为Django模型。Django模型允许程序员使用Python代码来定义数据库结构,并通过简单的API对数据库进行操作。

定义模型

要定义一个模型,需要在Django应用的models.py文件中创建一个类,并继承django.db.models.Model类。这个类的属性表示数据库中的字段,它们可以是整数、字符串、日期等等。下面是一个简单的模型定义例子:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey('Author', on_delete=models.SET_NULL, null=True)
    publication_date = models.DateField()

    def __str__(self):
        return self.title

在上面的例子中,Book是一个模型类,它有三个字段:titleauthorpublication_datetitle字段是一个字符型字段,author字段是一个外键字段(关联到Author模型),publication_date字段是一个日期型字段。

迁移数据库

一旦定义了模型,就可以使用Django的迁移工具来创建或修改数据库表结构。迁移工具可以自动识别模型的变化,并生成相应的SQL语句。

要进行迁移,需要在命令行中运行以下命令:

$ python manage.py makemigrations
$ python manage.py migrate

第一条命令会生成一个迁移文件,描述了数据库表结构的变化。第二条命令会应用这个迁移文件,实际修改数据库。

操作模型

通过Django模型,可以方便地操作数据库。Django提供了一套简洁而强大的API,用于增删改查数据。

创建对象

要创建一个模型对象,可以直接实例化这个模型类,并调用save()方法保存到数据库中:

book = Book(title='Django for Beginners', author='John Doe', publication_date='2022-01-01')
book.save()
查询对象

可以使用objects属性上的all()方法来查询所有的对象,或使用get()方法查询满足条件的单个对象。还可以使用filter()方法按条件查询多个对象。

以下是一些常见的查询例子:

all_books = Book.objects.all()
book = Book.objects.get(title='Django for Beginners')
recent_books = Book.objects.filter(publication_date__gt='2021-01-01')
更新和删除对象

要更新对象,可以直接修改对象的属性,并调用save()方法保存修改:

book.title = 'Django for Experts'
book.save()

要删除对象,可以调用delete()方法:

book.delete()
总结

Django模型是一个功能强大的工具,用于定义数据库结构和操作数据。它提供了简洁而强大的API,使得开发人员可以轻松地进行数据库操作。通过迁移工具,可以方便地创建和修改数据库表结构。无论是创建、查询、更新还是删除数据,Django模型都提供了简洁而一致的接口,极大地提高了开发效率。