Как создать статический HTML-файл из шаблона Django?
Я новичок в Django, и я почти уверен, что читал или слышал о том, как это сделать, но я нигде не могу его найти.
Вместо того, чтобы отправлять визуализированный вывод из шаблона в браузер, я хочу создать html-файл, который затем можно будет обслуживать без необходимости каждый раз проходить процесс рендеринга. Я занимаюсь разработкой системы, которая отделена от сервера нашего основного веб-сайта, и мне нужно периодически предоставлять снимки моих данных нашим пользователям, не предоставляя им доступ к системе разработки.
Моя интуиция говорит, что я должен каким-то образом перенаправить ответ на файл, но я не вижу его в документации или других постах здесь.
3 ответа
Вы можете использовать загрузчик шаблонов 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)
django-bakery - это хорошо разработанный "набор помощников для выпечки вашего сайта Django в виде плоских файлов".
Специально для этого есть хорошо разработанное приложение Django: django-render-static