一 批量插入数据
需求:访问db_handle,创建一万条数据,并将创建的一万条数据展示给前端页面。
views.py
from django.shortcuts import render
from app01 import models
# Create your views here.
def db_handle(request):
# 先创建一万本书
for i in range(1, 10001):
models.Book.objects.create(name=f'第{i}本书')
book_obj = models.Book.objects.all()
return render(request, 'db_handle.html', locals())
db_handle.html
<body>
{% for foo in book_obj %}
<p>{{ foo.name }}</p>
{% endfor %}
</body>
上述代码书写完毕后启动django后端,浏览器访问,会发现浏览器会有一个明显的卡顿等待时间,这不是你的浏览器有问题也不是网速有问题,而是后端再不停的操作数据库,耗时较长。
bulk_create方法
def db_handle(request):
# 先创建一万本书
temp = []
for i in range(1, 10001):
temp.append(models.Book(name=f'第{i}本书')) # 将book对象放入列表中
models.Book.objects.bulk_create(temp) # 批量删除
book_obj = models.Book.objects.all()
# book_obj = models.Book.objects.filter().delete()
return render(request, 'db_handle.html', locals())
代码修改完毕之后其他地方无需改动,重启django项目浏览器重新访问,你会立马发现数据量增大十倍的情况下页面出现的速度居然还比上面的版本要快上速度倍!!!
bulk_create方法是django orm特地提供给我们的方便批量操作数据库的方式,效率非常高!!!