Jinja2 с WeasyPrint работает слишком медленно - PullRequest
0 голосов
/ 14 июля 2020

Я создаю веб-сайт «Resume Builder», используя React и Django. React отправляет данные резюме как json на django, где создается PDF-файл. Я использую WeasyPrint для создания PDF-файлов и Jinja2 для вставки данных в шаблон. Код Jinja включает несколько логических операторов (я изо всех сил старался использовать как можно меньше), а также содержит немного тяжелые CSS. Время создания одностраничного шаблона составляет около 14-20 секунд и 20-30 секунд для двухстраничного шаблона. Я попытался удалить CSS и сохранил только HTML и данные, PDF-файл был сгенерирован за секунду или две, затем я удалил данные и оставил только HTML и CSS, а PDF-файл был создан в 5 -10 секунд.

Есть ли какое-либо решение для создания PDF менее чем за 5 секунд с HTML, CSS и данными? Существуют ли какие-либо конфигурации Jinja2 или уловки для повышения производительности?

Образец Jinja2, используемый для отображения данных в шаблоне:

<div class="resumeThree-section-2">
    <div class="resumeThree-left-section">
        <div>
            <p class="resumeThree-left-section-title">PERSONAL PROFILE</p>
            <div class="resumeThree-descriptionBox">
                {{ data.profile }}
            </div>
        </div>
        <div class="resumeThree-section">
            <p class="resumeThree-left-section-title">CONTACT DETAILS</p>
            <div class="resumeThree-inputs">
                <span>{{ data.email }}</span>
                <span>{{ data.phone }}</span>
                <span>{{ data.url }}</span>
                <span>{{ data.address}}</span>
            </div>
        </div>
        <div class="resumeThree-section">
            <p class="resumeThree-left-section-title">SKILLS AND ABILITIES</p>
            <span class="resumeThree-inputs">
                {% for item in skills %}
                <span>{{ item }}</span>
                {% endfor %}
            </span>
        </div>
    </div>
</div>

PS: Я новичок в Django. Заранее благодарю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...