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中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
python实现梯度下降算法
Mar 24 Python
python实现归并排序算法
Nov 22 Python
Python 通过打码平台实现验证码的实现
May 13 Python
react+django清除浏览器缓存的几种方法小结
Jul 17 Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
给Django Admin添加验证码和多次登录尝试限制的实现
Jul 26 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 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
php5 mysql分页实例代码
2008/04/10 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
2016/03/29 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python3之模块psutil系统性能信息使用
2018/05/30 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
django用户登录验证的完整示例代码
2019/07/21 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
优秀导游先进事迹材料
2014/01/25 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
2014年班组长工作总结
2014/11/20 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
公司员工管理制度
2015/08/04 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python