RSS-Feed für die Events
Wir wollen einen RSS-Feed für die Events erstellen. Django wird mit einem integrierten Framework zur Generierung von Syndication-Feeds geliefert, das zum Generieren dynamischer Atom- und RSS-Feeds verwendet wird.
RSS
RSS ist eine Abkürzung für Really Simple Syndication, es ist eine Möglichkeit, Informationen an Sie geliefert zu bekommen, anstatt sie suchen zu müssen. RSS ist im Grunde ein strukturiertes XML-Dokument, das vollständigen oder zusammengefassten Text zusammen mit anderen Metadaten wie Veröffentlichungsdatum, Autorenname usw. enthält.
der RSS-Standard definiert Feld-Typen, die in einem Feed vorkommen müssen. Das sind description
, name
und
Django verfügt über ein integriertes Syndication-Feed-Generierungs-Framework, das die dynamischen Atoms und RSS-Feeds generiert.
Eine kurze Python-Klasse wird verwendet, um den Syndication-Feed in Django zu erstellen.
Die Feeds Klasse
Wir legen eine neue Datei an: event_manager/events/feeds.py
und füllen sie
mit folgendem Inhalt:
from django.contrib.syndication.views import Feed
from django.template.defaultfilters import truncatewords
from .models import Event
class LatestEventFeed(Feed):
title = "Event Feed"
link = "example.com"
description = "Neue Events"
def items(self):
return Event.active.all()
def item_name(self, item):
return item.name
def item_description(self, item):
return truncatewords(item.descriptions, 30)
Die URL für den Feed anlegen
Wir öffnen die Datei event_manager/events/urls.py
und fügen folgenden
Eintrag hinzu:
from .feeds import LatestEventFeed
urlpatterns = [
# andere URLs
# diese URL hier eintragen
path("feed/rss", LatestEventFeed(), name="event_feed"),
]
Mehr zur Django Feeds: https://docs.djangoproject.com/en/stable/contrib/syndication/