📜  django 模型形式 - Python (1)

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

Django 模型形式

Django 是一个开放源代码的 Python Web 框架,通过使用 Django 的模型形式,我们可以轻松地创建数据库中的表、字段、索引以及数据的增删改查等操作。

创建模型

我们通常将模型定义在 Django 项目中的一个名为 models.py 的文件中,通过定义一个继承自 django.db.models.Model 的类来创建模型。以下是一个简单的例子:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)
    publish_date = models.DateField()

    def __str__(self):
        return self.title

在这个例子中,我们创建了一个名为 Book 的模型,它包含了 titleauthorpublish_date 三个字段。其中 titleauthor 为字符型字段,分别最大长度限制为 200 和 100,publish_date 为日期型字段。函数 __str__() 用于返回模型对象的字符串表示,这里返回的是图书的名称。

数据库迁移

创建模型之后,我们需要将其映射到数据库中。Django 提供了一个名为 migrations 的工具来完成这项工作。具体流程如下:

  1. 在项目的根目录下,运行以下命令来为 Book 模型创建数据库迁移文件:

    python manage.py makemigrations books
    

    其中 books 是我们创建的一个名为 books 的应用程序。

  2. 然后运行以下命令来将迁移应用于数据库:

    python manage.py migrate
    

    这将把新增的表添加到数据库中。

数据操作

通过 Book.objects,我们可以获取到 Book 的管理器对象,进而进行数据的操作。以下是几个例子:

创建记录

我们可以通过 Book.objects.create() 快速创建一条记录,例如:

Book.objects.create(
    title='Django for Beginners',
    author='William S. Vincent',
    publish_date='2019-08-31'
)
查询记录

我们可以使用 Book.objects.all() 方法获取 Book 的全部记录,也可以通过 filter() 方法筛选想要的记录。例如,以下代码将返回 publish_date 大于 2020 年 1 月 1 日的所有图书:

from datetime import date

books = Book.objects.filter(publish_date__gt=date(2020, 1, 1))
更新记录

我们可以使用 update() 方法来批量更新符合条件的记录,例如以下代码将会将所有作者名为 William S. Vincent 的记录的 author 改为 Bill Vincent

Book.objects.filter(author='William S. Vincent').update(author='Bill Vincent')
删除记录

我们可以通过 delete() 方法来批量删除符合条件的记录,例如以下代码将会删除所有作者名为 Bill Vincent 的记录:

Book.objects.filter(author='Bill Vincent').delete()
结论

本文介绍了 Django 的模型形式以及如何进行创建模型、数据库迁移、数据操作等常用操作。使用 Django 的模型形式,我们可以更便捷地进行数据库操作,提升开发效率。