91.一次性处理多条数据的方法:bulk_create,update,delete
(1)bulk_create: 可以一次性的创建多个对象
示例代码如下:
from django.http import HttpResponse
from .models import Pulisher, BookOrder
def index(request):
publisher =Publisher.objects.bulk_create([
Publisher(name='hello出版社'),
Publisher(name='你好出版社')
])
return HttpResponse("success")
(2)update:可以一次性的更新所有的数据。
示例代码如下:
from django.http import HttpResponse
from .models import Pulisher, BookOrder
def index(request):
# 一次性的更新
BookOrder.objects.update(price=F('price')+5)
return HttpResponse("success")
(3)delete:一次性的把所有的满足条件的数据都删除掉,但是需要注意的是,删除数据的时候,要注意定义的外键在删除时处理的方式:on_delete。
示例代码如下:
from django.http import HttpResponse
from .models import Pulisher, BookOrder
def index(request):
# delete: 一次性的删除多满足条件的数据
BookOrder.objects.filter(pk__gte=5).delete()
return HttpResponse("success")
其中所使用的到的模型的定义文件models.py,示例代码如下:
from django.db import models
# 定义作者模型
class Author(models.Model):
name = models.CharField(max_length=100, unique=True)
age = models.IntegerField()
email = models.EmailField()
class Meta:
db_table = 'author'
def __str__(self):
return "%s,%s,%s" % (self.name,self.age, self.email)
# 定义出版社模型
class Publisher(models.Model):
name = models.CharField(max_length=100,unique=True)
class Meta:
db_table = 'publisher'
def __str__(self):
return " ->:%s" % self.name
def Publisher_Default():
return Publisher.objects.get_or_create(name='默认出版社')
# 定义图书模型
class Book(models.Model):
name = models.CharField(max_length=100, unique=True)
pages = models.IntegerField()
price = models.FloatField()
rating = models.FloatField()
author = models.ForeignKey('Author', on_delete=models.CASCADE)
publisher = models.ForeignKey('Publisher', on_delete=models.SET_DEFAULT, default=Publisher_Default)
score = models.FloatField(null=True)
class Meta:
db_table = 'book'
# def __str__(self):
# return "(书名:%s,页数:%s,价格:%s,打折:%s,作者:%s,出版社:%s)" % (self.name, self.pages, self.price, self.rating, self.author, self.publisher)
# 定义预定图书的模型
class BookOrder(models.Model):
book = models.ForeignKey('Book', on_delete=models.CASCADE)
price = models.FloatField()
time = models.DateTimeField(auto_now_add=True, null=True)
class Meta:
db_table = 'book_order'
91.一次性处理多条数据的方法:bulk_create,update,delete的更多相关文章
- Oracle查询前几条数据的方法
在Oracle中实现select top N:由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum的组合来实现select top n的查询. ...
- Oracle数据库实现获取前几条数据的方法
如何在Oracle数据库中实现获取前几条数据的方法呢?就是类似SQL语句中的SELECT TOP N的方法.本文将告诉您答案,举例说明了哟! 1.在Oracle中实现SELECT TOP N : ...
- php+mysqli预处理技术实现添加、修改及删除多条数据的方法
本文实例讲述了php+mysqli预处理技术实现添加.修改及删除多条数据的方法.分享给大家供大家参考.具体分析如下: 首先来说说为什么要有预处理(预编译)技术?举个例子:假设要向数据库添加100个用户 ...
- 数据库一次性插入10w条数据,怎么插入效率快
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题 下面介绍SQL Server支持的两种批量 ...
- sql 随机抽取几条数据的方法 推荐
传说用这个语句管用:select top 5 * from tablename order by newid() 我放到sql的查询分析器里去执行果然管用,随机抽取5条信息,不停的换,结果我应用到程序 ...
- mssql sqlserver 使用sql脚本获取群组后,按时间排序(asc)第一条数据的方法分享
摘要: 下文讲述使用sql脚本,获取群组后记录的第一条数据业务场景说明: 学校教务处要求统计: 每次作业,最早提交的学生名单下文通过举例的方式,记录此次脚本编写方法,方便以后备查,如下所示: 实现思路 ...
- VUE:v-for获取列表前n个数据、中间范围数据、末尾n条数据的方法
说明: 1.开发使用的UI是mintUI, 要求: 1.获取6到13之间的数据:items.slice(6,13) <mt-cell v-for="(item,index) in it ...
- mysql实现随机获取几条数据的方法
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xionglangs/article/details/50630758sql语句有几种写法 1:SEL ...
- mssql 一次向表中插入多条数据的方法分享 (转自:http://www.maomao365.com/?p=6058)
转自:http://www.maomao365.com/?p=6058) <span style="font-size:16px;font-weight:bold;"> ...
随机推荐
- JWT跨域身份验证解决方案
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.本文介绍JWT的原理和用法. 1. 当前跨域身份验证的问题 Internet服务无法与用户身份验证分开.一般过程如下.1.用户 ...
- Oracle的操作经验
采用Oracle进行sql语句 建表并设置主键,主键自增,某一字段唯一性约束等 <---如果表存在则删除---> declare num number; begin select coun ...
- C++面试常见问题——09static关键字
static关键字 局部变量 局部变量 局部变量是最常见的量,编译器不会对其进行初始化,除非对其显式赋值,不然初始值是随机的. 普通局部变量存储在栈空间,使用完毕后会立即被释放. 静态局部变量 静态局 ...
- Oracle SQL 异常处理
今天学了异常处理 有预定义异常 与 用户自定义异常 还有 raise_application_error()函数raise_application_error() 只能把异常抛出而不能处理异常. 预定 ...
- 四、JavaScript之<script>标签的使用
一.代码如下 二.运行效果如下 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" cont ...
- Elasticsearch 搜索数据
章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...
- Bulma CSS - 响应式
Bulma CSS框架教程 Bulma CSS – 简介 Bulma CSS – 开始 Bulma CSS – CSS类 Bulma CSS – 模块化 Bulma CSS – 响应式 Bulma是一 ...
- tkinter组件详解之Label
tkinter组件详解之Label Label组件用于在屏幕上显示文本或图像.最红呈现出的结果是由背景和前景叠加构成的. 函数定义:Label(master=None, cnf={}, **kw) 背 ...
- MySQL 字符集和校验规则工作流程
MySQL 字符集和校验规则工作原理 字符编码相关参数 数据流中的转码过程 校验规则 Tips:字符集和校验规则总是相伴的 一 从简单的建库语句开始 CREATE DATABASE [IF NOT E ...
- Jenkins-在CentOS7 上安装配置
Jenkins-在CentOS7 上安装配置 1.安装JDK yum install -y java 2.安装jenkins 方法1:添加Jenkins库到yum库,Jenkins将从这里下载安装. ...