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;"> ... 
随机推荐
- Java8 Stream分组
			//根据排课id分组 Map<Integer, List<Schedule4Homework>> idSchedule4HomeworksMap = schedule4Home ... 
- asp.net mvc邮箱激活
			1.发送邮件 public ActionResult SendEmail() { var member = dbSession.MemberRepository.LoadEntities(p => ... 
- nodejs - fs模块 - 文件操作
			1, fs.stat 检测是文件还是目录 2, fs.mkdir 创建目录 var fs = require('fs') fs.mkdir('./dir',function(err){ if(err ... 
- 021-PHP常用的数值类型判断函数
			<?php //判断数组 $colors = array("red", "blue", "green"); if(is_array($ ... 
- SPOJ DQUERY D-query 离线+树状数组
			本来是想找个主席树的题目来练一下的,这个题目虽说可以用主席树做,但是用这个方法感觉更加叼炸天 第一次做这种离线方法,所谓离线,就在把所有询问先存贮起来,预处理之后再一个一个操作 像这个题目,每个操作要 ... 
- rsync错误
			rsync error:No route to host rsync服务端开启的iptables防火墙 [root@nfs01 tmp]# rsync -avz /etc/hosts rsync_ba ... 
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-align-justify
			<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ... 
- linux项目,项目报错,排查
			今天在遇到以前部署的项目突然没有数据了,然后就去服务器看了一下,打印日志发现报错了,现在我是一脸懵逼,因为不知道怎么排查 然后同事告诉说先看报错的原因,然后再去找认识的类,我打码的都是一些认识的 然后 ... 
- UVA - 1643 Angle and Squares (角度和正方形)(几何)
			题意:第一象限里有一个角,把n(n <= 10)个给定边长的正方形摆在这个角里(角度任意),使得阴影部分面积尽量大. 分析:当n个正方形的对角线在一条直线上时,阴影部分面积最大. 1.通过给定的 ... 
- 64.Python中ORM查询条件:in和关联模型
			定义模型的models.py文件中示例代码如下: from django.db import models class Category(models.Model): name = models.Ch ... 
