- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我决定使用 django 的模型系统而不是编写原始 SQL 来与我的数据库交互,但我遇到了一个肯定可以避免的问题。
我的 models.py 包含:
class Student(models.Model):
student_id = models.IntegerField(unique = True)
form = models.CharField(max_length = 10)
preferred = models.CharField(max_length = 70)
surname = models.CharField(max_length = 70)
我通过循环遍历列表来填充它,如下所示:
from models import Student
for id, frm, pref, sname in large_list_of_data:
s = Student(student_id = id, form = frm, preferred = pref, surname = sname)
s.save()
我真的不想每次都将它保存到数据库中,但我不知道另一种让 django 不忘记它的方法(我宁愿添加所有行然后进行一次提交) .
目前的代码存在两个问题。
速度很慢 -- 每秒大约有 20 名学生获得更新。
它甚至没有通过 large_list_of_data,而是抛出一个 DatabaseError 说“无法打开数据库文件”。 (可能是因为我使用的是 sqlite3。)
我的问题是:我怎样才能阻止这两件事发生?我猜这两个问题的根源是我有 s.save() 但我没有看到一种方法可以轻松地对学生进行批处理,然后将它们保存在对数据库的一次提交中。
最佳答案
所以看来我应该在提出问题之前更仔细地看一下。
描述了一些解决方案in this stackoverflow question (获胜的答案是使用 django.db.transaction.commit_manually)和 in this one关于汇总保存。
加速此类操作的其他想法在 this stackoverflow question 中列出。 .
关于database - 为什么我的 Django 批量数据库填充如此缓慢且经常失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4688018/
当运行 scala.util.Random().nextInt(3) 81 次时,我看到如下结果(Java 开发人员,请参阅 edit 了解这之间的关系): 200010202002112102222
在使用 native 应用程序在混合模式 C++/CLI 中调试时,我遇到了进程挂起问题。这是无法忍受的,我的调试几乎 70% 都会发生这种情况,我需要一次又一次地重新启动该过程。 是否有任何修补程序
我不知道这是一个错误还是某种误用/错误配置。希望有人能帮忙。谢谢! 如果我更改模块或 list 目录中的文件,通常会导致错误,大部分是以下类型 无法找到节点上的类 在节点上找不到定义类 当 Puppe
我是一名优秀的程序员,十分优秀!