Подтвердить что ты не робот

Как создать статический html файл из шаблона django?

Я новичок в Django, и я уверен, что прочитал или услышал о том, как это сделать, но я не могу найти его нигде.

Вместо отправки обработанного вывода из шаблона в браузер, я хочу создать html файл, который затем можно будет обслуживать без необходимости проходить процесс рендеринга каждый раз. Я разрабатываю систему, которая отделена от нашего основного сервера веб-сайта, и мне нужно сделать периодические снимки моих данных доступными для наших пользователей, не предоставляя им доступ к системе разработки.

Моя интуиция говорит, что я должен как-то перенаправить ответ на файл, но я не вижу его в документах или в других сообщениях здесь.

4b9b3361

Ответ 1

Вы можете использовать загрузчик шаблонов Django для визуализации вашего шаблона, включая любой контекст, который вы передаете ему, в виде строки, а затем сохранить это в файловой системе. Если вам нужно сохранить этот файл во внешней системе, например Amazon S3, вы можете использовать библиотеку Boto.

Вот пример того, как визуализировать представление файла, используя необязательный параметр querystring в качестве триггера...

from django.shortcuts import render
from django.template.loader import render_to_string

def my_view(request):
    as_file = request.GET.get('as_file')
    context = {'some_key': 'some_value'}

    if as_file:
        content = render_to_string('your-template.html', context)                
        with open('path/to/your-template-static.html', 'w') as static_file:
            static_file.write(content)

    return render('your-template.html', context)

Ответ 2

django-bakery - это хорошо разработанный "набор помощников для выпечки вашего сайта Django в виде плоских файлов".