Django ORM(Object-Relational Mapping)是Django框架中的一个工具,用于将数据库中的关系型数据映射到Python对象,使得数据库操作更加方便和面向对象。它允许开发者使用Python代码而不是SQL语句来进行数据库的增删改查操作。
以下是使用Django ORM进行数据库操作的基本步骤:
1. 定义模型类:
在Django中,模型类是一个Python类,用于定义数据库中的表结构。模型类的属性对应数据库表的字段。
# models.py
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
published_date = models.DateField()
price = models.DecimalField(max_digits=5, decimal_places=2)
2. 运行迁移:
Django使用迁移(migrations)来自动创建、修改和删除数据库表结构。在定义完模型类后,需要生成迁移并应用它们:
python manage.py makemigrations
python manage.py migrate
3. 使用模型进行数据库操作:
在Django的视图或其他地方,可以使用模型类进行数据库操作。以下是一些基本操作:
查询数据:
# 查询所有书籍
all_books = Book.objects.all()
# 条件查询
filtered_books = Book.objects.filter(author='Author Name')
# 获取单个对象
single_book = Book.objects.get(pk=1)
插入数据:
new_book = Book(title='New Book', author='Author Name', published_date='2023-01-01', price=19.99)
new_book.save()
更新数据:
book_to_update = Book.objects.get(pk=1)
book_to_update.title = 'Updated Title'
book_to_update.save()
删除数据:
book_to_delete = Book.objects.get(pk=1)
book_to_delete.delete()
4. 使用查询集(QuerySet):
Django ORM的查询集是一个强大的工具,用于链式操作和过滤数据。例如:
# 查询价格小于20的书籍,并按发布日期降序排列
filtered_books = Book.objects.filter(price__lt=20).order_by('-published_date')
这只是Django ORM的基础用法,它还包括更复杂的查询、聚合、事务等功能。通过使用Django ORM,开发者可以更轻松地管理数据库,而不用直接编写SQL语句。