Django 批量插入数据的实现方法


Posted in Python onJanuary 12, 2020

项目需求:浏览器中访问django后端某一条url(如:127.0.0.1:8080/get_book/),实时朝数据库中生成一千条数据并将生成的数据查询出来,并展示到前端页面

views.py

from django.shortcuts import render, HttpResponse, redirect
from app01 import models

def get_book(request):
# for循环插入1000条数据

for i in range(1000):


models.Book.objects.create(name='第%s本书'%i)

book_queryset = models.Book.objects.all()   # 将插入的数据再查询出来

return render(request,'get_book.html',locals()) # 将查询出来的数据传递给html页面

urls.py

from django.conf.urls import url
from app01 import views

urlpatterns = [
 url(r'^get_book/',views.get_book)
]

models.py

from django.db import models

class get_book(models.Model):
 title = models.CharField(max_length=64)

get_book.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
  {% load static %}
  <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}" rel="external nofollow" >
  <link rel="stylesheet" href="{% static 'dist/sweetalert.css' %}" rel="external nofollow" >
  <script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>
  <script src="{% static 'dist/sweetalert.min.js' %}"></script>
</head>
<body>
{% for book_obj in book_queryset %}
   <p>{{ book_obj.title }}</p>
{% endfor %}
</body>
</html>

上述代码书写完毕后启动django后端,浏览器访问,会发现浏览器会有一个明显的卡顿等待时间,这是因为后端在不停的操作数据库,耗时较长,大概需要等待一段时间之后才能正常看到刚刚插入的1000条数据,很明显这样操作数据库的效率太低,那有没有一种方式是专门用来批量操作数据库的呢?答案是肯定的!

bulk_create方法

将views.py中原先的视图函数稍作变化

def get_book(request):
  l = []
  for i in range(10000):
    l.append(models.Book(title='第%s本书'%i))
  models.Book.objects.bulk_create(l) # 批量插入数据
    return render(request,'get_book.html',locals())

代码修改完毕之后其他地方无需改动,重启django项目浏览器重新访问,你会立马发现数据量增大十倍的情况下页面出现的速度比上面还快。

bulk_create方法是django orm特地提供给我们的方便批量操作数据库的方式,效率非常高!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python利用openpyxl库遍历Sheet的实例
May 03 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 Python
python 切换root 执行命令的方法
Jan 19 Python
对python读取CT医学图像的实例详解
Jan 24 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
pytorch下使用LSTM神经网络写诗实例
Jan 14 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
python词云库wordcloud的使用方法与实例详解
Feb 17 Python
Python流程控制常用工具详解
Feb 24 Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
Mar 02 Python
python处理RSTP视频流过程解析
Jan 11 #Python
pyftplib中文乱码问题解决方案
Jan 11 #Python
python实现实时视频流播放代码实例
Jan 11 #Python
python3下pygame如何实现显示中文
Jan 11 #Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 #Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 #Python
使用pytorch完成kaggle猫狗图像识别方式
Jan 10 #Python
You might like
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
Python实现拼接多张图片的方法
2014/12/01 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
Python输出指定字符串的方法
2020/02/06 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
财政局长自荐信范文
2013/12/22 职场文书
农业资源与环境专业自荐信范文
2013/12/30 职场文书
小学防溺水制度
2014/01/29 职场文书
社会工作专业求职信
2014/07/15 职场文书
通知函格式范文
2015/04/27 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
职场新人刚入职工作总结该怎么写?
2019/05/15 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang