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发送arp欺骗攻击代码分析
Jan 16 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
python实现ID3决策树算法
Aug 29 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
python实现将汉字保存成文本的方法
Nov 16 Python
用pycharm开发django项目示例代码
Jun 13 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
python绘制封闭多边形教程
Feb 18 Python
Python super()方法原理详解
Mar 31 Python
Python实现Canny及Hough算法代码实例解析
Aug 06 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 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 session机制
2011/07/17 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
显示、隐藏密码
2006/07/01 Javascript
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
Python实现读取并保存文件的类
2017/05/11 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
详解Python如何生成词云的方法
2018/06/01 Python
django 中QuerySet特性功能详解
2019/07/25 Python
Django models.py应用实现过程详解
2019/07/29 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
Pygame的程序开始示例代码
2020/05/07 Python
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
中专毕业生求职简历的自我评价
2013/10/21 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
护理专业自荐书
2014/06/04 职场文书
办理房产证委托书
2014/09/18 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
2014年度工作总结报告
2014/12/15 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
python tkinter Entry控件的焦点移动操作
2021/05/22 Python