Python/Django,生成html后生成pdf

Python/Django,生成html后生成pdf,python,django,wkhtmltopdf,pdfkit,Python,Django,Wkhtmltopdf,Pdfkit,我的web应用程序是由python 2.7和Django 1.11编写的。当客户付费订阅时,它将立即生成发票pdf并通过电子邮件发送给客户。但是当我缩短时间时,代码就不起作用了。我想这是一种比赛状态 pdf文件是使用wkhtmltopdf(0.9.9)和pdfkit生成的。睡眠需要多少时间?还是一种合适的方式 我将在生成pdf后将其发送给客户。它需要再次休眠以等待pdf生成 output_html = current_month_folder + invoice_name + '.html' o

我的web应用程序是由python 2.7和Django 1.11编写的。当客户付费订阅时,它将立即生成发票pdf并通过电子邮件发送给客户。但是当我缩短时间时,代码就不起作用了。我想这是一种比赛状态

pdf文件是使用wkhtmltopdf(0.9.9)和pdfkit生成的。睡眠需要多少时间?还是一种合适的方式

我将在生成pdf后将其发送给客户。它需要再次休眠以等待pdf生成

output_html = current_month_folder + invoice_name + '.html'
output_filename = current_month_folder + invoice_name + '.pdf'
email_filename = invoice_name + '.pdf'
html_content = render_to_string(input_filename, context)

with open(output_html, 'w') as f:
    f.write(html_content)
    f.flush()
time.sleep(5)

pdfkit.from_file(output_html, output_filename)

您不需要保存该文件并使其成为pdf格式。改为使用来自字符串的

html_content = render_to_string(input_filename, context)

pdfkit.from_string(html_content, output_filename)

你不需要设置睡眠!您可以在下面放置电子邮件代码。

使用python查找异步回调,这样当您的创建和刷新完成时,您才可以从\u文件调用另一个源代码,我改变了您的方式,但它仍然无法工作。检查后,这是因为
reload(sys)
sys.setdefaultencoding('utf8')
我删除了它,它可以生成pdf文件。但它仍然无法将电子邮件发送到我的邮箱