发送文件作为附件Django

时间:2019-07-09 10:10:34

标签: python django django-1.11

我已经创建了XLS文件,并希望将其作为电子邮件附件发送。以下代码可以正常工作,并且我收到包含XLS文件的电子邮件(状态代码为200 OK)。

# This is working code
import xlwt
import StringIO
import zipfile

from django.core.mail import EmailMessage


work_book = xlwt.Workbook()

# Here some boring stuff with excel
...

report_name = "do_something_%(username)s_%(current_date)s.xls"

f = StringIO.StringIO()
work_book.save(f)

message = EmailMessage(
    subject=u"Sample Title",
    body=u"Sample body",
    to=["test@company.com"])

message.attach(report_name, f.getvalue())
message.send()

但是,如果我尝试发送压缩的XLS文件(使用zipfile),我什么也收不到(但是状态代码为“ 200 OK”)。 我用以下代码替换了最后两行代码:


report_name_zip = 'do_something_%(username)s_%(current_date)s.zip'

with zipfile.ZipFile(f, mode='w', compression=zipfile.ZIP_DEFLATED) as zf:
    zf.writestr(zinfo_or_arcname=report_name, bytes=f.getvalue())

message.attach(report_name_zip, f.getvalue())
message.send()

1 个答案:

答案 0 :(得分:2)

您同时读写s.str.rsplit('(', 1, expand=True)。您应该使用两个单独的 0 1 0 City of Lost Children, The (Cité des enfants p... 1999) 1 City of Lost Children, The. Cité des enfants p... 1999)

stringIO