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 相关文章推荐
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
python求解水仙花数的方法
May 11 Python
详解Python中映射类型的内建函数和工厂函数
Aug 19 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 Python
tensorflow实现加载mnist数据集
Sep 08 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
python 列表推导式使用详解
Aug 29 Python
python读取Kafka实例
Dec 23 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 Python
浅谈Python类的单继承相关知识
May 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
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
jquery中获取元素的几种方式小结
2011/07/05 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
Django中传递参数到URLconf的视图函数中的方法
2015/07/18 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
python 制作磁力搜索工具
2021/03/04 Python
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
教师自我评价范例
2013/09/24 职场文书
师范院校学生自荐信范文
2013/12/27 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
啦啦队口号大全
2014/06/16 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers
一文搞懂Java中的注解和反射
2022/06/21 Java/Android