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字符串拼接的几种方法整理
Aug 02 Python
python实现简单点对点(p2p)聊天
Sep 13 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
详解Python传入参数的几种方法
May 16 Python
python装饰器常见使用方法分析
Jun 26 Python
django中SMTP发送邮件配置详解
Jul 19 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
Django框架创建项目的方法入门教程
Nov 04 Python
tensorflow 分类损失函数使用小记
Feb 18 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
python math模块的基本使用教程
Jan 16 Python
Python 快速验证代理IP是否有效的方法实现
Jul 15 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
python多线程编程中的join函数使用心得
2014/09/02 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
Python (Win)readline和tab补全的安装方法
2019/08/27 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
信息管理员岗位职责
2013/12/01 职场文书
党员个人思想汇报
2013/12/28 职场文书
文体活动实施方案
2014/03/27 职场文书
公务员诚信承诺书
2014/05/26 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
2014年学生工作总结
2014/11/20 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
入党团支部推荐意见
2015/06/02 职场文书
springboot中的pom文件 project报错问题
2022/01/18 Java/Android
警用民用对讲机找不同
2022/02/18 无线电