Django中ORM的基本使用教程

下面我会详细讲解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-pymysql-封装的sql使用

    封装的sql import pymysql def get_list(sql,args): conn = pymysql.connect(host=’127.0.0.1′, port=3306, user=’root’, passwd=”, db=’s4db65′, charset=’utf8′) cursor = conn.cursor(cursor=p…

    Django 2023年4月13日
    00
  • Django中操作Redis

    一 创建redis连接池 redis_pool.py pool = redis.ConnectionPool(host=’10.211.55.4′, port=6379) 二 引入连接池 import redis from django.shortcuts import render from utils.redis_pool import POOL def…

    Django 2023年4月11日
    00
  • Django 配置(一)开启服务

    注:这里使用的是命令行创建,当然也可以用 pycharm 自带的 django 项目创建更加简便。   安装django pip install django   创建项目 django-admin startproject 项目名   设置 pycharm 代码同步       二选一,自动保存还是ctrl+s保存代码至服务器   远程连接   将服务器的…

    Django 2023年4月13日
    00
  • Django之POST GET与前后端交互

    Django之META与前后端交互 1 提交表单之GET 前端提交数据与发送 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收GET请求数据 2)接收POST请求数据 3)响应请求 GET 请求过程 前端通过ajax发起GET请求,json格式数据 var data = { “name”: “test”, “age”: 1 }; $.a…

    Django 2023年4月10日
    00
  • [Django_1_1]第一个app

    本篇负责介绍添加第一个Django app。本篇文章的上一篇为:Django 初次见面 关于App和Project 简单的来说,一个项目(Project)可以由很多个应用(App)组成也就是说:Project > App 创建App 使用命令python3 manage.py startapp polls,来创建一个名字为polls的App,此时文件结…

    2023年4月9日
    00
  • 用 Django 开发一个 Python Web API的方法步骤

    下面是用 Django 开发一个 Python Web API的方法步骤的完整攻略。 1. 创建 Django 项目 首先我们需要创建一个 Django 项目,打开控制台,输入以下命令: django-admin startproject project_name 其中,project_name 可以替换为你想要创建的项目名称。 2. 创建 Django A…

    Django 2023年5月16日
    00
  • Django框架:13、csrf跨站请求伪造、auth认证模块及相关用法

    Django框架 目录 Django框架 一、csrf跨站请求伪造 1、简介 2、csrf校验策略 form表单csrf策略 ajax请求csrf策略 3、csrf相关装饰器 FBV添加装饰器方式 CBV添加装饰器方式 二、auth认证模块 1、简介 2、auth认证相关模块及操作 auth 模块 User 模块 login_required 模块 3、拓展…

    2023年4月10日
    00
  • [Django]用户权限学习系列之Permission权限基本操作指令

    若需建立py文件进行测试,则在文件开始加入以下代码即可 #coding:utf-8 import os os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “www.settings”) ”’ Django 版本大于等于1.7的时候,需要加上下面两句 import django django.setup() 否则…

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