Django批量覆蓋更新實(shí)現(xiàn)示例
批量處理用戶上傳的數(shù)據(jù)
利用bulk_create 方法能夠批量處理用戶上傳的數(shù)據(jù), 面對(duì)大量的上傳數(shù)據(jù)時(shí), 能夠提升數(shù)據(jù)入庫(kù)的速度.
這時(shí)候, 如果上傳的數(shù)據(jù)存在問(wèn)題, 該怎么處理呢?
例如, 數(shù)據(jù)存在唯一性約束. 但用戶上傳的數(shù)據(jù), 存在重復(fù)項(xiàng).
這時(shí)候,有三種方式.
- 中斷并回滾整個(gè)操作
- 忽略錯(cuò)誤項(xiàng), 繼續(xù)其它項(xiàng)目的寫入
- 覆蓋原先數(shù)據(jù).
前兩種比較好實(shí)現(xiàn).
psqlextra 插件實(shí)現(xiàn)
第三種,如果用的是PostgreSQL的話, 可以考慮用 psqlextra 插件來(lái)實(shí)現(xiàn).
例如:
from psqlextra.manager import PostgresManager
class Record(models.Model):
student = models.ForeignKey(to=Person, on_delete=models.CASCADE, verbose_name='參考人')
date = models.DateField(verbose_name='考核時(shí)間')
class Meta:
verbose_name = '考核成績(jī)'
verbose_name_plural = verbose_name
unique_together = ("student", "date")
objects = PostgresManager()可以用下述方式, 實(shí)現(xiàn)批量覆蓋更新:
from psqlextra.query import ConflictAction
Record.objects.on_conflict(
['student', 'date'], ConflictAction.UPDATE
).bulk_insert(
[
dict(student=1,date='2021-02-11'),
dict(student=2,date='2021-03-11'),
]
)以上就是Django批量覆蓋更新實(shí)現(xiàn)示例的詳細(xì)內(nèi)容,更多關(guān)于Django批量覆蓋更新的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實(shí)現(xiàn)的AES雙向?qū)ΨQ加密解密與用法分析
這篇文章主要介紹了python實(shí)現(xiàn)的AES雙向?qū)ΨQ加密解密與用法,簡(jiǎn)單分析了AES加密解密算法的基本概念并結(jié)合實(shí)例形式給出了AES加密解密算法的相關(guān)實(shí)現(xiàn)技巧與使用注意事項(xiàng),需要的朋友可以參考下2017-05-05
Python處理中文文件必看之解決utf-8解碼錯(cuò)誤的4種實(shí)戰(zhàn)方法
在使用Python處理包含中文字符的文本文件時(shí),經(jīng)常會(huì)遇到?UnicodeDecodeError:?'utf-8'?codec?can't?decode?byte?這類錯(cuò)誤,下面我們就來(lái)看看具體解決方法吧2026-03-03
pytorch從csv加載自定義數(shù)據(jù)模板的操作
這篇文章主要介紹了pytorch從csv加載自定義數(shù)據(jù)模板的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python實(shí)現(xiàn)博客快速備份的腳本分享
本文針對(duì)博客園實(shí)現(xiàn)了一個(gè)自動(dòng)備份腳本,可以快速將自己的文章備份成Markdown格式的獨(dú)立文件,備份后的md文件可以直接放入到hexo博客中,感興趣的可以了解一下2022-09-09
Python使用XPath進(jìn)行正則表達(dá)式匹配的實(shí)戰(zhàn)指南
在Web自動(dòng)化測(cè)試和數(shù)據(jù)抓取中,我們經(jīng)常遇到動(dòng)態(tài)生成的HTML屬性,傳統(tǒng)XPath定位方式容易因這些變化而失效,下面我們就來(lái)看看Python中如何運(yùn)用XPath正則匹配吧2026-04-04
Python的Tqdm模塊實(shí)現(xiàn)進(jìn)度條配置
這篇文章主要介紹了Python的Tqdm模塊實(shí)現(xiàn)進(jìn)度條配置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Python 操作 PowerPoint OLE 對(duì)象的實(shí)現(xiàn)
本文詳細(xì)介紹如何使用Python在PowerPoint中嵌入、管理和操作OLE對(duì)象,包括嵌入Excel文件、ZIP壓縮包等,并提取、修改已嵌入的OLE對(duì)象數(shù)據(jù),通過(guò)這些技術(shù),可以構(gòu)建自動(dòng)化工具處理包含多種類型數(shù)據(jù)的復(fù)雜演示文稿2026-05-05
Django 在iframe里跳轉(zhuǎn)頂層url的例子
今天小編就為大家分享一篇Django 在iframe里跳轉(zhuǎn)頂層url的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08

