Django 模型核心方法与进阶用法详解
引言
在 Django 生态中,模型(Model)不仅是数据库表的映射,更是业务逻辑的载体。它通过 ORM(对象关系映射)屏蔽了底层 SQL 的差异,让我们能用 Python 代码直接操作数据。掌握模型的核心方法,能显著提升开发效率与代码质量。
基础操作:CRUD 全流程
1. 定义与创建模型
一切始于模型类的定义。我们需要继承 models.Model,并明确每个字段的类型与约束。这步决定了数据库表的结构。
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200, verbose_name='书名')
author = models.CharField(max_length=100)
published_date = models.DateField()
class Meta:
db_table = 'books'
这里定义了 title、author 和 published_date 三个字段。注意 verbose_name 能让后台管理界面更友好,而 Meta 类允许我们自定义表名等元数据。
2. 保存与更新数据
实例化模型后,调用 save() 方法即可将数据写入数据库。如果是已存在的对象,修改字段后再调用 save() 则执行更新操作。
# 新增
book = Book(title='Django 入门', author='张三', published_date='2023-01-01')
book.save()
# 更新
book.title = 'Django 实战指南'
book.save() # 自动执行 UPDATE 语句
实际开发中,建议开启事务控制,确保批量操作的原子性。对于高频更新场景,直接使用 update() 方法可以绕过模型实例化,直接生成 SQL,性能更优。
3. 查询数据
Django 的查询 API 非常直观。通过 objects 管理器,我们可以轻松实现过滤、排序和聚合。
# 获取所有
all_books = Book.objects.all()
# 过滤条件
popular = Book.objects.filter(author='张三')
# 链式查询
recent = Book.objects.filter(published_date__gte=).order_by()


