Python / Django, генерировать PDF после генерации HTML - PullRequest
0 голосов
/ 28 июня 2018

Мое веб-приложение написано на 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)

1 Ответ

0 голосов
/ 28 июня 2018

Вам не нужно сохранять этот файл и делать его в формате PDF. Используйте from_string вместо

html_content = render_to_string(input_filename, context)

pdfkit.from_string(html_content, output_filename)

Тебе не нужно спать! Вы можете разместить код электронной почты ниже.

...