Django csv下载性能问题

2024-04-25 23:25:58 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,我在从数据生成CSV文件时遇到了问题。你知道吗

我有大约6000件物品的清单。这些物体就像定制的形状, 因此每个对象都有许多与之相关联的字段。例如,请求可以包括姓名、年龄、电话号码等。在这种情况下,每个请求都有相同的字段。因此每个表单都与这些字段有一对多的关系。你知道吗

所以我从这个定制表单中获取一些标准的东西作为一个ValuesQuerySet,然后获取与这个表单相关的所有字段。并将它们添加到每一行。最后,我使用dictionary writer将数据写入csv。这一切都很好,但表现很糟糕。用大约15个自定义字段做6000条记录需要大约90秒(这会触发超时错误)。我需要一些方法来加快速度。你知道吗

我的代码看起来像这样。。。。你知道吗

forms = SomeForm.objects.filter(created_by=user).values('value1', 'value2', 'etc...')
for form in forms:
     id = form['id']
     fields = Fields.objects.filter(Form_id=id).values('value', 'field__label')
     for field in fields:
         label = field['form_field__label']
         value = field['value']
         form[label] = value
writer = csv.DictWriter(response, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(forms)

一些代码被删除了,但这是它的要点。 如果你能想出任何方法来加快这一点,或者也许是一个替代方法来处理它,我将非常感激。你知道吗


Tags: csv数据方法代码formid表单field