【发布时间】:2021-03-02 10:29:09
【问题描述】:
我可以在 Django 响应中返回多个文件吗?
通常,我看到很多网站都上传了多张图片。但是,我没有在多个图片或文件中看到响应。现在,我可以从 Django 导出一个 excel 文件,但我想同时导出多个 excel 文件。
以下代码从响应中导出单个 excel 文件
from openpyxl import Workbook
response = HttpResponse(
content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
)
response['Content-Disposition'] = 'attachment; filename={date}-user.xlsx'.format(
date=datetime.now().strftime('%Y-%m-%d'),
)
workbook = Workbook()
worksheet = workbook.active
worksheet.title = 'Test'
row_num = 1
columns = ["Username", "First_name", "Last_name", "Email"]
for col_num, column_title in enumerate(columns, 1):
cell = worksheet.cell(row=row_num, column=col_num)
cell.value = column_title
user_queryset = User.objects.all().values("username", "first_name", "last_name", "email")
for user in user_queryset:
row_num += 1
# Define the data for each cell in the row
row = [
user['username'],
user['first_name'],
user['last_name'],
user['email'],
]
# Assign the data for each cell of the row
for col_num, cell_value in enumerate(row, 1):
cell = worksheet.cell(row=row_num, column=col_num)
cell.value = cell_value
workbook.save(response)
return response
【问题讨论】:
-
我认为您必须使用
tar或zip之类的方式将它们一起归档到一个文件中。
标签: python django file export-to-excel