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中列表生成式的用法
Mar 31 Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 Python
python距离测量的方法
Mar 06 Python
Python2包含中文报错的解决方法
Jul 09 Python
使用Python处理BAM的方法
Sep 28 Python
python 处理string到hex脚本的方法
Oct 26 Python
pycharm新建一个python工程步骤
Jul 16 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
Aug 01 Python
python线程定时器Timer实现原理解析
Nov 30 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
基于FME使用Python过程图解
May 13 Python
selenium3.0+python之环境搭建的方法步骤
Feb 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
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
深入理解python对json的操作总结
2017/01/05 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
python实现朴素贝叶斯算法
2018/11/19 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
python反编译学习之字节码详解
2019/05/19 Python
python同步两个文件夹下的内容
2019/08/29 Python
python实现淘宝购物系统
2019/10/25 Python
python多进程重复加载的解决方式
2019/12/13 Python
Python3开发环境搭建详细教程
2020/06/18 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
.NET初级开发工程师面试题
2014/04/18 面试题
Linux面试题LINUX系统类
2014/11/19 面试题
补充协议书范本
2014/04/23 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
Python Numpy库的超详细教程
2022/04/06 Python