下面我会详细讲解Django中ORM的基本使用教程和两个示例。
ORM简介
ORM全称是Object-Relational Mapping,即对象关系映射,它是一种程序设计技术,用于实现面向对象程序语言与关系数据库之间的映射。在ORM中,每一个数据表映射为一个类,每一条记录映射为类的一个实例。
在Django中,ORM支持各种关系型数据库,如MySQL、PostgreSQL等。ORM使得与数据库交互变得更加简单和安全。它抽象了数据库的操作,开发者不需要再去写SQL语句进行增、删、改、查操作,可以直接通过ORM的API进行操作。
ORM的基本使用教程
1. 创建模型
ORM是通过面向对象方式操作数据库的,因此首先要定义相关的模型。在Django中,可以通过models模块实现模型的定义。定义模型的示例代码如下:
from django.db import models
class User(models.Model):
name = models.CharField(max_length=20)
age = models.IntegerField()
email = models.EmailField()
上面的代码中,定义了一个User类,它继承自models.Model,表示这个类与数据库中的一个表对应。定义了三个属性:name、age和email,对应表中的三个字段,都是CharField、IntegerField和EmailField三种类型的字段。其中max_length表示最大长度,EmailField表示该字段必须是一个有效的邮箱地址。
2. 数据库迁移
模型定义好之后,需要进行数据库迁移操作。数据库迁移是将模型中定义的字段映射到数据库中的表中,并生成相应的表结构。Django中,可以通过以下命令进行数据库迁移操作:
python manage.py makemigrations
python manage.py migrate
第一条命令用于生成迁移文件,第二条命令用于执行迁移。
3. 增加数据
数据库迁移完成之后,即可进行数据的增、删、改、查操作了。在Django中,可以通过以下方式创建、保存一个新的User对象:
user = User(name='Tom', age=20, email='tom@gmail.com')
user.save()
4. 查询数据
Django提供多种方式查询数据,举个例子:
users = User.objects.all() # 查询全部User对象
user = User.objects.get(name='Tom') # 查询name字段为Tom的User对象
5. 更新数据
假设我们想要将name为Tom的User对象的email修改成另一个值:
user = User.objects.get(name='Tom')
user.email = 'new_email@gmail.com'
user.save()
这里,我们先通过get方法查询到了一个name为Tom的User对象,然后将它的email属性修改后保存。
6. 删除数据
最后是删除数据的操作,代码如下:
user = User.objects.get(name='Tom')
user.delete()
这里,我们先通过get方法查询到了一个name为Tom的User对象,然后直接使用delete方法删除该对象。
示例一
假设现在我们要开发一个简单的博客系统,有两个模型:文章Article和作者Author,一个作者可以有多篇文章。模型的定义如下:
class Author(models.Model):
name = models.CharField(max_length=20)
email = models.EmailField()
class Article(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
content = models.TextField()
定义了两个模型类,Author类和Article类。其中,Article类有一个外键字段author,用于关联作者对象。
添加一篇文章和一个作者的示例代码如下:
author = Author(name='Tom', email='tom@gmail.com')
author.save()
article = Article(author=author, title='Django ORM tutorial', content='This is a tutorial about Django ORM.')
article.save()
通过上述代码,我们添加了一篇标题为“Django ORM tutorial”的文章,作者为Tom。
示例二
假设现在我们要开发一个简单的在线商城系统,有两个模型:商品Product和购物车Cart,一件商品可以被加入多个购物车。模型的定义如下:
class Product(models.Model):
name = models.CharField(max_length=20)
price = models.FloatField()
class Cart(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
count = models.PositiveIntegerField()
定义了两个模型类,Product类和Cart类。其中,Cart类有一个外键字段product,用于关联商品对象。
新建一个购物车和往购物车中添加商品的示例代码如下:
product = Product(name='apple', price=5.0)
product.save()
cart = Cart(product=product, count=2)
cart.save()
通过上述代码,我们添加了一个商品,名字为“apple”,价格为5.0元,并将其添加到购物车中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django中ORM的基本使用教程 - Python技术站