【补充】批量插入

【1】准备数据

class Book(models.Model):
    title = models.CharField(max_length=32)

【2】一条一条插入

  • 后端
def ab_many(request):
    # (1)先给Book表插入一万条数据
    for i in range(1000):
        models.Book.objects.create(title=f'第{i}本书')
    # (2)将所有数据查询到并展示给前端页面
    book_queryset = models.Book.objects.all()

    return render(request, 'ab_many.html', locals())
  • 前端
{% for book_obj in book_queryset %}
    <p>{{ book_obj.title }}</p>
{% endfor %}

效果就是,有一种网络很高的感觉,页面一直在转圈圈

【3】优化-批量插入

def ab_many(request):

    # 批量插入
    boo_list = []
    for i in range(1000):
        book_obj = models.Book.objects.create(title=f'第{i}本书')
        boo_list.append(book_obj)
    models.Book.objects.bulk_create(boo_list)
    return render(request, 'ab_many.html', locals())

  • 当我们想向数据库批量插入数据的时候,使用ORM提供的bulk_create方法能够大大的减少操作的时间
posted @ 2023-07-17 11:33  Chimengmeng  阅读(8)  评论(0编辑  收藏  举报