四十七、批量操作数据
一 批量插入数据
需求:访问db_handle,创建一万条数据,并将创建的一万条数据展示给前端页面。
views.py
from django.shortcuts import render
from app01 import models# Create your views here.def db_handle(request):# 先创建一万本书for i in range(1, 10001):models.Book.objects.create(name=f'第{i}本书')book_obj = models.Book.objects.all()return render(request, 'db_handle.html', locals())
db_handle.html
<body>{% for foo in book_obj %}<p>{{ foo.name }}</p>{% endfor %}
</body>
上述代码书写完毕后启动django后端,浏览器访问,会发现浏览器会有一个明显的卡顿等待时间,这不是你的浏览器有问题也不是网速有问题,而是后端再不停的操作数据库,耗时较长。
bulk_create方法
def db_handle(request):# 先创建一万本书temp = []for i in range(1, 10001):temp.append(models.Book(name=f'第{i}本书')) # 将book对象放入列表中models.Book.objects.bulk_create(temp) # 批量删除book_obj = models.Book.objects.all()# book_obj = models.Book.objects.filter().delete()return render(request, 'db_handle.html', locals())
代码修改完毕之后其他地方无需改动,重启django项目浏览器重新访问,你会立马发现数据量增大十倍的情况下页面出现的速度居然还比上面的版本要快上速度倍!!!
bulk_create方法是django orm特地提供给我们的方便批量操作数据库的方式,效率非常高!!!
四十七、批量操作数据相关推荐
- FreeSql (十四)批量更新数据
FreeSql支持丰富的更新数据方法,支持单条或批量更新,在特定的数据库执行还可以返回更新后的记录值. var connstr = "Data Source=127.0.0.1;Port=3 ...
- NeHe OpenGL教程 第四十七课:CG顶点脚本
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Python编程基础:第四十七节 抽象类Abstract Classes
第四十七节 抽象类Abstract Classes 前言 实践 前言 抽象类可以这么理解,它就是一个模板,里面声明了子类必须定义的函数,但是对于每个函数都没有给出具体实现.所有函数的实现都是在子类中定 ...
- OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算
OpenCV学习笔记(四十六)--FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术.在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用.这一次先介绍特征点检 ...
- python常用小技巧(四)——批量图片改名
python常用小技巧(四)--批量图片改名 前言:在日常使用中我们需要批量修改图片名字,使用Python的话就可以很快地完成这个目标 一.材料准备 - os 二.程序编写 # -*- coding: ...
- 第三十四章 批量印刷书籍
第三十四章 批量印刷书籍 "不,这次是要必须跪下去的,因为这是对您的敬重,你竟然能够制作出来如此锋利的宝剑,那么我这个长安城的第一铁匠就当的有些太无能了." "哪里无能, ...
- ABP源码分析四十七:ABP中的异常处理
ABP源码分析四十七:ABP中的异常处理 参考文章: (1)ABP源码分析四十七:ABP中的异常处理 (2)https://www.cnblogs.com/1zhk/p/5538983.html (3 ...
- 【零基础学Java】—finally代码块(四十七)
[零基础学Java]-finally代码块(四十七)
- JavaScript学习(四十七)—构造方法创建对象的不足
JavaScript学习(四十七)-构造方法创建对象的不足 构造方法创建对象的不足 如果将所有的属性和方法都封装到构造方法中,那么在创建对象时,每个对象身上都会有独立的一份构造方法中的属性和方法. 如 ...
- 问题四十七:怎么用ray tracing画superellipsoid (2)
网络上有另外一种更为简单的superellipsoid的方程形式:(这种方程,更快些) 数学推导和"问题四十六"类似(应该是更为简单),此处不表. 47.1 看C++代码实现 -- ...
最新文章
- 【怎样写代码】向现有类型“添加”方法 -- 扩展方法(二):扩展方法的实现与调用
- 被Zoom逼疯的歪果仁,造出了视频会议机器人,同事已笑疯丨开源
- VC++ 绘制简单电子元件
- 中国SaaS死或生之六:逢场作戏or脚踏实地?
- 精选的一些《编程之美》相关资料
- presto联合查询mysql和ES_presto-mysql/elasticsearch6.0.0安装部署测试,异种数据源关联查询入门实践...
- 今天的就每天练习这招的企业即时通讯
- 构建虚拟工控环境系列 - 罗克韦尔虚拟PLC
- 强化学习的基础总结(一)
- DS1302说明文档
- 【最新】电脑常用装机软件组合 装机必备
- 阿里云服务器购买后如何做好安全防护?
- Springboot RabbitMQ
- FITC-GSL I荧光素标记的西非单叶豆凝集素 I
- pat乙级 1006 题解
- 场景:一个年级,相当链表A ,该年级5个班,每个班5个人,相当于链表B1--B5:做一个学生成绩管理系统学生成绩有语文 数学 英语功能: 录入成绩 找三科总分的最高分 最低分 算出平均分
- mysql IP address ‘xxx‘ could not be resolved
- 拼多多首页html制作,拼多多商家视频怎么制作?有什么要求?
- texworks注释掉多行latex代码。
- c语言李白的三门考试成绩查询,考试成绩反思1000字
热门文章
- uni-app写微信小程序获取位置信息
- js typeof undefined
- 华师计算机在线作业答案,2016春季华师计算机基础在线作业答案
- 解决浏览器能上网而其他软件无法联网的问题
- 数据库拆分3--使用sharding-jdbc 支持子查询sql
- Mybatis如何进行分页的
- androidstudio安装的app打开闪退,AndroidManifest中也声明了类,但是却没有报错信息。(小坑)
- 安装python+selenium
- Flink流式计算从入门到实战 二
- 彻底征服 React.js + Flux + Redux【讲师辅导】-曾亮-专题视频课程