Есть ли хорошие варианты для выкидывания сайта 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. Такой сайт должен быть легко запущен на одной из этих платформ, и он должен быть довольно дешевым с каждым месяцем.

Некоторые поставщики, к которым вы можете обратиться, включают: