我有一个非常大的数据库(数十亿行),用户可以通过使用django构建的网站进行查询。我想为用户提供以excel格式下载查询结果的可能性。目前代码如下:
from excel_response import ExcelResponse
qs = data.objects_in(db)
qs_results = qs.filter([...]).order_by([...]])
json_data = [['col1', 'col2', 'col3']]
for item in qs_results:
json_data.append([
escape(item.col1),
escape(item.col2),
escape(item.col3),
])
return ExcelResponse(json_data, 'title')
但这真的很慢。输出有时可能有100000行(和20列),需要10分钟以上才能生成,并且经常超时
如何高效地输出具有大量行的excel文件
您可以按照此链接使用芹菜任务执行此过程 Django export function and Celery task
或者您也可以按照此链接在django中使用async视图来执行此操作 https://thoslin.github.io/async-download-with-celery/
在这些情况下,这两种方法都非常有效
相关问题 更多 >
编程相关推荐