Django 模型学习笔记

简介

Django中的模型是指用于定义数据库结构的一个Python类。通过模型,可以轻松地定义和操作数据库表,包括增加、删除和修改数据记录等。

模型的定义

在Django中定义模型非常简单,只需创建一个继承自django.db.models.Model的Python类,并在类中定义数据库表的字段。

例如,我们定义一个名为Book的模型,其包含以下几个字段:

pythonCopy Code
from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=50) publisher = models.CharField(max_length=50) publication_date = models.DateField() price = models.DecimalField(max_digits=6, decimal_places=2)

在上面的代码中,我们定义了一个名为Book的模型,其中包含从标题到价格共计5个字段。

其中,titleauthorpublisher都是CharField类型的字段,表示书籍的名称、作者和出版社名称;publication_date是一个DateField类型的字段,表示书籍的出版日期;price是一个DecimalField类型的字段,表示书籍的价格。

除此之外,还有许多其他可用的字段类型,如IntegerFieldBooleanFieldTextField等。具体可参见Django官方文档

数据库迁移

在定义了模型之后,需要将其同步到数据库中。Django中提供了一套强大的数据库迁移工具,可以自动地帮助开发者完成模型与数据库表之间的映射。

首先,在项目根目录下执行以下命令,创建一个新的数据库迁移:

bashCopy Code
$ python manage.py makemigrations

然后,执行以下命令,将新的数据库迁移应用到数据库中:

bashCopy Code
$ python manage.py migrate

通过执行上述两个命令,我们就可以将新定义的模型同步到数据库中。如果需要对模型进行修改,只需修改对应字段及其类型,然后再次执行上述两个命令即可。

模型的操作

在定义好并同步了模型之后,就可以对其进行操作。Django提供了一套灵活而易用的ORM(对象关系映射)框架,方便开发者对数据库进行增删改查等操作。

例如,我们可以使用以下代码向Book模型中插入一条新数据:

pythonCopy Code
from datetime import date from myapp.models import Book book = Book.objects.create( title='Python入门教程', author='binjie09', publisher='清华大学出版社', publication_date=date(2022, 6, 1), price=49.99 )

通过上述代码,我们向Book模型中插入了一条新数据,即一本名为Python入门教程的书籍,作者为binjie09,出版社为清华大学出版社,出版日期为2022年6月1日,价格为49.99元。

除此之外,还可以使用类似于以下代码进行查询、更新或删除操作:

pythonCopy Code
# 查询 books = Book.objects.filter(author='binjie09') for book in books: print(book.title) # 更新 book = Book.objects.get(title='Python入门教程') book.price = 59.99 book.save() # 删除 book = Book.objects.get(title='Python入门教程') book.delete()

通过上述代码,我们可以轻松地完成对Book模型的查询、更新和删除操作。

总结

Django的模型是一个非常强大而方便的工具,方便开发者定义和操作数据库表。掌握了Django的模型,在开发网站时能够更加轻松地完成数据处理和管理。