Django中ORM的基本使用教程

yizhihongxing

下面我会详细讲解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技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 定时器:Django-crontab

    定时器是平时编程中比较常用的,今天分享一个Django里非常好用又简单的定时亲:Django-crontab。这个真的是非常的简单好用,比celery+Django执行周期任务简单的多 首先下载django-crontab. pip install django-crontab 配置相关信息。 目录setting.py #将django-crontab注册到…

    Django 2023年4月15日
    00
  • django 认证类配置实现

    下面是关于 Django 认证类配置实现的完整攻略,包含两条示例说明。 什么是 Django 认证类? Django 认证类是 Django 框架提供的一种认证机制,可以用于对用户进行认证。它可以让开发者快速的添加用户身份验证和授权功能,让开发者专注于业务开发。 认证类配置实现 接下来,我们将介绍如何在 Django 中使用认证类进行身份验证的配置实现。共有…

    Django 2023年5月16日
    00
  • Django – 权限(5)- 非菜单权限对应的一级菜单展开、面包屑导航

    一、非菜单权限对应的一级菜单展开   需求:客户列表和账单列表页面中都有添加按钮,当点击添加客户(或编辑客户、删除客户)时,客户列表所属的一级菜单展开,当点击添加账单(或编辑账单、删除账单)时,账单列表所属的一级菜单展开。 1、permission表新增一个pid字段,表示非菜单权限的父级菜单权限id,permission模型类如下: class Permi…

    Django 2023年4月10日
    00
  • Django笔记十九之manager用法介绍

    本文首发于微信公众号:Hunter后端原文链接:Django笔记十九之manager用法介绍 首先介绍一下 manager 的使用场景,比如我们有一些表级别的,需要重复使用的功能,都可以使用 manager 来实现。 比如我们在前面的笔记中介绍的 model 的 create()、update() 等方法,Blog.objects.create() 中前面的…

    2023年4月10日
    00
  • django 的 MTV 流程图

         

    Django 2023年4月12日
    00
  • Django 开发环境与生产环境的区分详解

    以下是“Django 开发环境与生产环境的区分详解”攻略,包含介绍和两个示例: Django 开发环境与生产环境的区分详解 介绍 在 Django 网站的开发和部署过程中,我们需要区分开发环境和生产环境,两个环境的配置是有很大差别的。开发环境主要关注代码的编写和修改,调试,测试,而生产环境需要着重考虑网站的性能,安全性和稳定性。本文将详细讲解 Django …

    Django 2023年5月15日
    00
  • 浅谈Django Admin的初步使用

    下面我将详细讲解“浅谈Django Admin的初步使用”的完整攻略,并在过程中提供两条示例说明。 1. 什么是Django Admin Django Admin是Django框架提供的内置管理工具,可以方便地对应用程序的数据进行管理和维护。它提供了一个轻量级的前端界面,允许管理者、开发者更加直观地查看、添加、修改、删除数据,而无需编写自定义管理界面。 2.…

    Django 2023年5月16日
    00
  • 在SAE上部署Python的Django框架的一些问题汇总

    下面是部署Python的Django框架在SAE上的一些问题汇总的完整攻略和两个示例说明。 1. 环境搭建 首先,需要在本地安装 Django 和 mysqlclient。可以使用以下命令: pip install django pip install mysqlclient 如果报错,可以尝试使用以下命令: pip install django –use…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部