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能夠大大的減少操作時間
"""


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM