Django 如何将响应保存到文件?
在服务器端,我有生成pdf文档的功能:Django 如何将响应保存到文件?,django,django-views,Django,Django Views,在服务器端,我有生成pdf文档的功能: def get_pdf(template, context_dict): context = Context(context_dict) html = template.render(context) import subprocess wkhtml2pdf = subprocess.Popen((settings.WKHTML2PDF_COMMAND,
def get_pdf(template, context_dict):
context = Context(context_dict)
html = template.render(context)
import subprocess
wkhtml2pdf = subprocess.Popen((settings.WKHTML2PDF_COMMAND,
"--encoding",
"UTF-8",
"-",
"-"),
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
wkdata = wkhtml2pdf.communicate(html.encode('utf8'))
pdf = wkdata[0];
response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'attachment; filename=%s.pdf' % (
timezone.now().strftime('%Y_%m_%d_%H_%M_%S')
)
response.write(pdf)
return response
我想在返回响应之前在服务器端保存这个文件。如何操作?要将此文件保存到哪里?我想在
媒体根目录中
:
import os
from django.conf import settings
...
pdf = wkdata[0];
file_name = os.path.join(settings.MEDIA_ROOT,
timezone.now().strftime('%Y_%m_%d_%H_%M_%S.pdf'))
with open(file_name, 'w') as f:
f.write(pdf)
response = HttpResponse(mimetype='application/pdf')
...