第二章(二):Django框架Model之ORM操作数据库:增、删、改、查
发布人:shili8
发布时间:2024-11-08 04:12
阅读次数:0
**第二章 (二):Django 框架 Model 之 ORM 操作数据库**
在 Django 框架中,Model 是一个非常重要的组成部分,它们负责与数据库进行交互。ORM(Object-Relational Mapping)是 Django 提供的一种操作数据库的方式,使得我们可以使用 Python代码来操作数据库,而不需要直接写 SQL语句。
在本章,我们将学习如何使用 Django 的 ORM 操作数据库,包括增、删、改、查四个基本操作。
###2.1 Model 定义首先,我们需要定义一个 Model。Model 是一个 Python 类,它继承自 `django.db.models.Model`。我们可以在这个类中定义一些属性,这些属性将与数据库中的表格对应。
例如,我们可以定义一个 `Book` 模型,如下所示:
# models.pyfrom django.db import modelsclass Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=50) publish_date = models.DateField()
在这个例子中,我们定义了一个 `Book` 模型,它有三个属性:`title`、`author` 和 `publish_date`。这些属性将与数据库中的表格对应。
###2.2 增 (Create)
增是指向数据库添加新数据的操作。在 Django 中,我们可以使用 `save()` 方法来实现这一点。
例如,我们可以在视图函数中创建一个新的 `Book` 实例,并保存到数据库中,如下所示:
# views.pyfrom django.shortcuts import renderfrom .models import Bookdef create_book(request): book = Book(title='Python Programming', author='John Doe', publish_date='2022-01-01') book.save() return render(request, 'success.html')
在这个例子中,我们创建了一个新的 `Book` 实例,并使用 `save()` 方法将其保存到数据库中。
###2.3 删 (Delete)
删是指向数据库删除数据的操作。在 Django 中,我们可以使用 `delete()` 方法来实现这一点。
例如,我们可以在视图函数中删除一个 `Book` 实例,如下所示:
# views.pyfrom django.shortcuts import renderfrom .models import Bookdef delete_book(request): book = Book.objects.get(id=1) book.delete() return render(request, 'success.html')
在这个例子中,我们使用 `get()` 方法获取一个 `Book` 实例,并使用 `delete()` 方法将其从数据库中删除。
###2.4 改 (Update)
改是指向数据库更新数据的操作。在 Django 中,我们可以使用 `save()` 方法来实现这一点。
例如,我们可以在视图函数中更新一个 `Book` 实例,如下所示:
# views.pyfrom django.shortcuts import renderfrom .models import Bookdef update_book(request): book = Book.objects.get(id=1) book.title = 'Python Programming2' book.save() return render(request, 'success.html')
在这个例子中,我们使用 `get()` 方法获取一个 `Book` 实例,并更新其属性。然后我们使用 `save()` 方法将其保存到数据库中。
###2.5 查 (Retrieve)
查是指向数据库查询数据的操作。在 Django 中,我们可以使用 `filter()` 和 `get()` 方法来实现这一点。
例如,我们可以在视图函数中获取一个 `Book` 实例,如下所示:
# views.pyfrom django.shortcuts import renderfrom .models import Bookdef get_book(request): book = Book.objects.get(id=1) return render(request, 'book.html', {'book': book})
在这个例子中,我们使用 `get()` 方法获取一个 `Book` 实例,并将其传递给模板。
###2.6 ORM 操作数据库在 Django 中,ORM 是一种操作数据库的方式,使得我们可以使用 Python代码来操作数据库,而不需要直接写 SQL语句。我们可以使用以下方法来实现这一点:
* `save()` 方法:用于保存数据到数据库中。
* `delete()` 方法:用于删除数据从数据库中。
* `filter()` 方法:用于过滤数据。
* `get()` 方法:用于获取一个具体的数据。
例如,我们可以使用以下代码来实现这一点:
# views.pyfrom django.shortcuts import renderfrom .models import Bookdef create_book(request): book = Book(title='Python Programming', author='John Doe', publish_date='2022-01-01') book.save() return render(request, 'success.html') def delete_book(request): book = Book.objects.get(id=1) book.delete() return render(request, 'success.html') def update_book(request): book = Book.objects.get(id=1) book.title = 'Python Programming2' book.save() return render(request, 'success.html') def get_book(request): book = Book.objects.get(id=1) return render(request, 'book.html', {'book': book})
在这个例子中,我们使用 `save()` 方法创建一个新的 `Book` 实例,并保存到数据库中。我们使用 `delete()` 方法删除一个 `Book` 实例,从数据库中。我们使用 `update()` 方法更新一个 `Book` 实例,并保存到数据库中。最后,我们使用 `get()` 方法获取一个 `Book` 实例,并传递给模板。
###2.7 总结在本章,我们学习了如何使用 Django 的 ORM 操作数据库,包括增、删、改、查四个基本操作。我们了解了如何定义 Model,如何使用 `save()` 方法保存数据到数据库中,如何使用 `delete()` 方法删除数据从数据库中,如何使用 `filter()` 和 `get()` 方法过滤和获取数据。
我们还学习了如何使用 ORM 操作数据库,包括使用 `save()` 方法保存数据到数据库中,使用 `delete()` 方法删除数据从数据库中,使用 `filter()` 和 `get()` 方法过滤和获取数据。