Турбо-страницы Яндекса в Django — анонс django-yaturbo 0.2.0
О том, как реализовать выдачу Турбо-страниц в вашем проекте на Django.
Турбо-страницы — это лёгкие версии страниц вашего сайта, хранимые на серверах Яндекса. За счёт своей лёгкости, а также хорошей доступности серверов, такие страницы быстро грузятся даже на медленных соединениях, например, 3G.
Чтобы показать Яндексу, что у вашего сайта есть турбо-версии страниц, можно создать RSS-канал (оформленный по определённым правилам) и зарегистрировать его в Вебмастере.
В Django уже есть инструменты для создания RSS-каналов, но из коробки их использовать для Турбо-страниц не получится, придётся подкручивать. Чтобы вам (и мне) впредь этого не делать, на днях я создал django-yaturbo. Более того, я уже успел включить это приложение на pythonz.net, и у страницы, которую вы сейчас читаете, теперь тоже есть турбо-версия.
Давайте посмотрим, как подключить
Здесь всё очень похоже на классическое подключение RSS-канала в Джанго.
Для начала наследуем класс нашего канала от
По большому счёту, дополнительно к определениям, требующимся для настройки канала, достаточно будет лишь определить метод
Подлючается канал тоже классическим способом.
Создаём экземпляр [опционально его настраиваем] и цепляем к
Этого, пожалуй, должно хватить для запуска Турбо-страниц в вашем проекте.
Обратите внимание, что есть требования к оформлению содержимого страниц, которые нужно выполнять.
Пользуйтесь.
django-yaturbo разрабатывается открыто, можете принимать участие.
Быстрее, выше, сильнее!
Чтобы показать Яндексу, что у вашего сайта есть турбо-версии страниц, можно создать RSS-канал (оформленный по определённым правилам) и зарегистрировать его в Вебмастере.
В Django уже есть инструменты для создания RSS-каналов, но из коробки их использовать для Турбо-страниц не получится, придётся подкручивать. Чтобы вам (и мне) впредь этого не делать, на днях я создал django-yaturbo. Более того, я уже успел включить это приложение на pythonz.net, и у страницы, которую вы сейчас читаете, теперь тоже есть турбо-версия.
Давайте посмотрим, как подключить
django-yaturbo
.Здесь всё очень похоже на классическое подключение RSS-канала в Джанго.
Для начала наследуем класс нашего канала от
YandexTurboFeed
: from yaturbo import YandexTurboFeed
class TurboFeed(YandexTurboFeed):
turbo_sanitize = True
def items(self):
return Article.objects.all()
def item_turbo(self, article):
# Представим, что в атрибуте article.html содержится код страницы.
# Ввиду того, что мы проставили выше turbo_sanitize = True
# наш HTML будет санирован - теги и атрибуты, не поддерживаемые
# Турбо-страницами, будут автоматически удалены.
# Это, конечно не то же самое, что сверстать специальную Турбо-страницу,
# но в ряде случаев и этого достаточно.
return article.html
По большому счёту, дополнительно к определениям, требующимся для настройки канала, достаточно будет лишь определить метод
.item_turbo()
, возвращающий HTML лёгкой страницы.Подлючается канал тоже классическим способом.
Создаём экземпляр [опционально его настраиваем] и цепляем к
urlpatterns
в urls.py
: from .feeds import TurboFeed
feed = TurboFeed()
# Можно тут же указать номер счётчика Яндекс.Метрики.
feed.configure_analytics_yandex('123456789')
# И тут же данные блока рекламной сети Яндекса,
# если планируете показывать на страницах рекламу.
feed.configure_ad_yandex('A-123')
urlpatterns = [
...
path('feeds/turbo/', feed),
...
]
Этого, пожалуй, должно хватить для запуска Турбо-страниц в вашем проекте.
Обратите внимание, что есть требования к оформлению содержимого страниц, которые нужно выполнять.
Пользуйтесь.
django-yaturbo разрабатывается открыто, можете принимать участие.
Быстрее, выше, сильнее!
Категории
Язык
Окружение
Проект
Циклы статей
Уровень
На заметку
У нас есть новостная группа в Telegram. Там же можно обсудить интересующие вопросы. Ссылка в самом низу страницы.