📅  最后修改于: 2023-12-03 14:40:47.331000             🧑  作者: Mango
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
的模型,它包含了 title
、author
和 publish_date
三个字段。其中 title
和 author
为字符型字段,分别最大长度限制为 200 和 100,publish_date
为日期型字段。函数 __str__()
用于返回模型对象的字符串表示,这里返回的是图书的名称。
创建模型之后,我们需要将其映射到数据库中。Django 提供了一个名为 migrations
的工具来完成这项工作。具体流程如下:
在项目的根目录下,运行以下命令来为 Book
模型创建数据库迁移文件:
python manage.py makemigrations books
其中 books
是我们创建的一个名为 books
的应用程序。
然后运行以下命令来将迁移应用于数据库:
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 的模型形式,我们可以更便捷地进行数据库操作,提升开发效率。