Django 批量插入資料

2022-05-06 21:15:11 字數 1464 閱讀 3946

專案需求:瀏覽器中訪問django後端某一條url(如:127.0.0.1:8080/get_book/),實時朝資料庫中生成一千條資料並將生成的資料查詢出來,並展示到前端頁面

#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

urlviews

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)

"en

">

}

get_book.html

上述**書寫完畢後啟動django後端,瀏覽器訪問,會發現瀏覽器會有乙個明顯的卡頓等待時間,這是因為後端在不停的運算元據庫,耗時較長,大概需要等待一段時間之後才能正常看到剛剛插入的1000條資料,很明顯這樣運算元據庫的效率太低,那有沒有一種方式是專門用來批量運算元據庫的呢?答案是肯定的!

將views.py中原先的檢視函式稍作變化

def

get_book(request):

l =for i in range(10000):

第%s本書

'%i))

models.book.objects.bulk_create(l)

#批量插入資料

return render(request,'

get_book.html

',locals())

**修改完畢之後其他地方無需改動,重啟django專案瀏覽器重新訪問,你會立馬發現資料量增大十倍的情況下頁面出現的速度比上面還快。

bulk_create方法是django orm特地提供給我們的方便批量運算元據庫的方式,效率非常高!!!

批量插入資料

drop procedure if exists pre 如果存在先刪除 delimiter 以delimiter來標記用 表示儲存過程結束 create procedure pre 建立pre 儲存方法 begin declare i int default 12 declare n int de...

JDBC批量插入資料

一.直接上源 以匯入課表資料為例 批量插入新申請 匯入預設課表 throws sqlexception catch sqlexception e int number ps.executebatch 把剩餘的資料插入 conn.commit 手動提交事務 try catch sqlexception...

TVP批量插入資料

錶值引數具有更高的靈活性,在某些情況下,可比臨時表或其他傳遞引數列表的方法提供更好的效能。錶值引數具有以下優勢 1 首次從客戶端填充資料時,不獲取鎖。2 提供簡單的程式設計模型。3 允許在單個例程中包括複雜的業務邏輯。4 減少到伺服器的往返。5 可以具有不同基數的表結構。6 是強型別。7 使客戶端可...