Есть ли хорошие варианты для запекания сайта Django в виде статических файлов? - PullRequest
11 голосов
/ 02 сентября 2011

Скажем, у вас есть существующий сайт Django, поддерживаемый базой данных. Что-то простое, например, отдельная модель, содержащая запись для каждой бейсбольной команды низшей лиги. Доступ к модели осуществляется одним представлением, в котором перечислены все команды, и другим, в котором принимается слаг, а затем создается страница сведений об этой команде.

Есть ли хороший вариант для преобразования приложения в стопку запеченных плоских файлов, чтобы его можно было обслуживать из статической файловой службы, такой как Amazon S3?

Я играл с Hyde , но мне не совсем понятно, как он применяется к существующему сайту, поддерживаемому базой данных.

Любой совет будет очень признателен. Заранее спасибо.

Ответы [ 6 ]

3 голосов
/ 08 июля 2016

Джанго-Медуза в основном не поддерживается. Вот некоторые альтернативы, упомянутые в README проекта:

2 голосов
/ 01 июля 2012

Только что было объявлено о новом, хотя он существовал и использовался его автором уже довольно давно:

django-medusa .

У меня естьеще не пробовал его использовать, но он выглядит неплохо: я буду!

2 голосов
/ 02 сентября 2011

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

Счастливого кодирования, друг.

1 голос
/ 02 сентября 2011

У меня похожая настройка с использованием Django, но на GAE.Я создал скрипт сборки, который я использую для сборки статических файлов 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

HTH

0 голосов
/ 02 сентября 2011

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

Некоторые провайдеры, которых вы можете оформить, включают:

0 голосов
/ 02 сентября 2011

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

Одним из вариантов решения этой проблемы является то, что он может создавать только HTML-файлы, если есть ссылки на страницы, т.е. поисковые формы и т. д. не будет работать, ссылки на основе JavaScript могут не работать .

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