Django Models 是 Django 框架中的一个核心组件,它提供了一种声明式的方式来定义数据库中的表结构,并通过 Django 的对象关系映射(ORM)功能来操作这些表。
定义与用途
定义:Django Models 是 Python 类,用于定义数据库中的表结构以及表中的字段。
用途:通过 Models,开发者可以以一种面向对象的方式来操作数据库,而无需编写 SQL 语句。
字段类型
Django Models 提供了多种字段类型,用于定义表中的字段。这些字段类型包括:
CharField:用于定义字符串字段,需要指定最大长度。
TextField:用于定义大文本字段,没有长度限制。
IntegerField:用于定义整数字段。
DateField:用于定义日期字段。
DateTimeField:用于定义日期和时间字段。
EmailField:用于定义电子邮件地址字段,会自动进行格式验证。
ForeignKey:用于定义外键关系,指向另一个模型。
ManyToManyField:用于定义多对多关系,可以在两个模型之间建立多个关联。
模型继承
Django Models 支持继承,子类模型可以继承父类模型的字段和方法。通过继承,可以创建具有共同属性的模型层次结构。
Meta 类
在 Django Models 中,可以使用 Meta 类来定义一些额外的选项,如数据库表名、排序方式等。
class MyModel(models.Model): # 字段定义 name = models.CharField(max_length=100) class Meta: db_table = 'my_table_name' # 指定数据库表名 ordering = ['-name'] # 指定排序方式
数据库操作
Django Models 提供了丰富的数据库操作方法,包括查询、添加、更新和删除记录。
查询:使用 all()
、filter()
、get()
等方法查询记录。
添加:使用 create()
方法添加新记录。
更新:使用 update()
方法更新记录。
删除:使用 delete()
方法删除记录。
迁移与同步
在修改了模型定义后,需要使用 Django 的迁移工具来将更改同步到数据库中。这包括生成迁移文件和应用迁移文件两个步骤。通过执行 python manage.py makemigrations
和 python manage.py migrate
命令,可以完成迁移过程。