Есть ли хорошие варианты для выкидывания сайта Django как статические файлы?
Скажем, у вас есть существующий сайт Django с поддержкой базы данных. Что-то простое, как одиночная модель, содержащая запись для каждой бейсбольной команды. Доступ к модели осуществляется одним видом, в котором перечислены все команды, а другой, который принимает slug, а затем создает подробную страницу об этой команде.
Есть ли хороший вариант для конвертации приложения в стек выпеченных плоских файлов, чтобы его можно было обслуживать из статического файлового сервиса, такого как Amazon S3?
Я играл с Hyde, но мне не ясно, как оно относится к существующему сайту, поддерживаемому базой данных.
Любые советы будут очень оценены. Заранее благодарю вас.
Ответы
Ответ 1
django-medusa в значительной степени не поддерживается. Вот некоторые альтернативы, упомянутые в проекте README:
Ответ 2
Я понимаю ваше намерение, но в любой подходящей структуре в наши дни есть своего рода кеширование mecanism, которое облегчает боли в динамическом контенте. С правильно реализованным кешем разница между статическими и динамическими будет тривиальной. Поверь мне.
Счастливое кодирование, друг.
Ответ 3
Новый анонс только что был анонсирован, хотя он существует и используется его автором в течение некоторого времени:
django-medusa.
Я еще не пробовал использовать его, но он уверен, что выглядит хорошо: я буду!
Ответ 4
У меня аналогичная настройка с использованием Django, но с GAE. Я создал сборку script, которую я использую для создания статических HTML файлов. Поскольку версия шаблонов Django GAE немного отличается, для этого может потребоваться некоторое тестирование.
Но по существу вы делаете что-то вроде
from django.template import Template, Context
from django.template.loader import get_template
t = get_template('template1.html') #Need to verify this. GAE template allows me to just call template.render(path, context). Not sure about pure Django templates
c = Context({ 'variable' : 'value'})
with open("file1.html", "w") as f:
f.write(t.render(c)) #This works for me, but if this doesn't in pure Django, try render_to_string
НТН
Ответ 5
Вы запрашиваете динамический сайт для размещения в статической среде, что невозможно. Единственный способ - экспортировать все файлы, помещать их в статический сервер. Вы можете сделать это с помощью wget
, он скопирует все файлы и преобразует их в html.
Одна из проблем этой проблемы заключается в том, что она может создавать только html файлы, если есть ссылки на страницы, т.е. формы поиска и т.д. не будут работать, ссылка на Javascript может не работать.
Ответ 6
Я не знаком ни с чем, что преобразует существующий сайт django на статический сайт html. Возможно, стоит посмотреть на набор новых провайдеров PaaS django/python. Такой сайт должен быть легко запущен на одной из этих платформ, и он должен быть довольно дешевым с каждым месяцем.
Некоторые поставщики, к которым вы можете обратиться, включают: