Django | 批量插入数据(bulk_create)
批量插入
# 需求:我们要循环插入100条数据到数据库中,并将数据返回到前端页面。
准备工作:
urls.py
from app01 import views
urlpatterns = [
url(r'^pl_del/',views.pl_del)
]
views.py
from app01 import models
def pl_del(request):
for i in range(100):
models.User.objects.create(name='用户%s'%i)
user_queryset = models.User.objects.all()
return render(request,'pl_del.html',locals())
html前端页面
<body>
{% for user_obj in user_queryset %}
<p>{{ user_obj.name }}</p>
{% endfor %}
</body>
# 我们可以在后端使用for循环循环创建数据并插入到数据库,然后将所有的数据对象传入到前端页面,前端页面再使用for循环取出所有的数据并展示。
# 我们可以看到在创建100个数据的时候都要等很久,这样用户体验是很不好的。这时就要用到orm提供给我们的bulk_create方法。
bulk_create
from app01 import models
user_list = []
def pl_del(request):
for i in range(100):
user_obj = models.User(name='用户%s'%i)
user_list.append(user_obj)
models.User.objects.bulk_create(user_list) # 使用bulk_create
user_queryset = models.User.objects.all()
return render(request,'pl_del.html',locals())
总结:
"""
第一种:循环使用create插入100条数据
第二种:循环将数据先统一添加到一个列表中,再统一添加到数据库
很明显第二种方式只操作了一次数据库,速度肯定相比较要快的。
所以:
当你想要批量插入数据的时候 使用orm提供的bulk_create能够大大的减少操作时间
"""
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)