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中操作字典之fromkeys()方法的使用
May 21 Python
python executemany的使用及注意事项
Mar 13 Python
python编程实现12306的一个小爬虫实例
Dec 27 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
TensorFlow的权值更新方法
Jun 14 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
python在回调函数中获取返回值的方法
Feb 22 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
Python 将 QQ 好友头像生成祝福语的实现代码
May 03 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 Python
使用Django实现商城验证码模块的方法
Jun 01 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
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php5 图片验证码实现代码
2009/12/11 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
python实现矩阵乘法的方法
2015/06/28 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
python购物车程序简单代码
2018/04/18 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
怎样写留学自荐信
2013/11/11 职场文书
入党自荐书范文
2015/03/05 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
详解Python函数print用法
2021/06/18 Python
MySQL 逻辑备份 into outfile
2022/05/15 MySQL