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 collections模块实例讲解
Apr 07 Python
django开发教程之利用缓存文件进行页面缓存的方法
Nov 10 Python
python二维列表一维列表的互相转换实例
Jul 02 Python
Python3 log10()函数简单用法
Feb 19 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
python覆盖写入,追加写入的实例
Jun 26 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
Aug 05 Python
Python编程学习之如何判断3个数的大小
Aug 07 Python
python使用rsa非对称加密过程解析
Dec 28 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
python 获取字典键值对的实现
Nov 12 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之Smarty模板使用方法示例详解
2014/07/08 PHP
PHP扩展开发入门教程
2015/02/26 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
javascript date格式化示例
2013/09/25 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
英语文学专业学生的自我评价
2013/10/31 职场文书
爱情保证书
2015/01/17 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
鉴史问廉观后感
2015/06/10 职场文书
运动会100米加油稿
2015/07/21 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
MySQL通过binlog恢复数据
2021/05/27 MySQL
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
python 多态 协议 鸭子类型详解
2021/11/27 Python