Django 的 ORM(对象关系映射)系统允许你通过 Python 类与数据库表进行交互。以下是一个简单的单表实例,包括定义模型、创建迁移并应用迁移、以及进行基本的 CRUD 操作。

定义模型

首先,在你的应用程序中的 models.py 文件中定义一个模型类,表示数据库中的表:
# models.py
from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=255)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    description = models.TextField()

    def __str__(self):
        return self.name

在这个例子中,我们定义了一个名为 Product 的模型,它有三个字段:name、price 和 description。__str__ 方法定义了模型实例在显示时应该返回的字符串。

创建迁移

在定义完模型后,需要创建数据库迁移,以便将模型映射到数据库表。在命令行中运行:
python manage.py makemigrations

这将生成迁移文件,描述了数据库模式的变化。

应用迁移

应用迁移将更改应用到数据库中。在命令行中运行:
python manage.py migrate

使用 Django shell 进行 CRUD 操作

通过 Django shell,你可以与数据库交互,执行基本的 CRUD 操作。
python manage.py shell

在 shell 中,你可以执行以下操作:

创建新记录
from your_app.models import Product

# 创建一个新的产品实例
new_product = Product(name='Example Product', price=19.99, description='A sample product.')
# 保存到数据库
new_product.save()

查询记录
# 获取所有产品
all_products = Product.objects.all()

# 根据条件查询
filtered_products = Product.objects.filter(price__gte=10.0)

# 获取单个产品
single_product = Product.objects.get(name='Example Product')

更新记录
# 获取要更新的产品
product_to_update = Product.objects.get(name='Example Product')

# 更新字段
product_to_update.price = 29.99
product_to_update.save()

删除记录
# 获取要删除的产品
product_to_delete = Product.objects.get(name='Example Product')

# 删除产品
product_to_delete.delete()

通过这些操作,你可以使用 Django ORM 与数据库表进行交互,执行常见的数据库操作。这只是 Django ORM 的基础,你还可以学习更多高级的特性,如关联、查询集(QuerySet)等。


转载请注明出处:http://www.pingtaimeng.com/article/detail/13917/Django