Sitemaps mit Django erstellen
Eine Sitemap ist nichts weiter als eine XML Datei auf dem Webserver, welche Suchmaschinen sagt wie sich Seiten geändert haben, und wie wichtig einzelne Seiten sind. Ausserdem kann man so Seiten Suchmaschinen geben, die evtl. nicht in den Index aufgenommen werden.
Zum Glück nimmt Django einem die Arbeit ab, so dass Sitemaps automatisch erzeugt werden können. Die Installation ist ziemlich simpel:
- Das Modul ‘django.contrib.sitemaps’ zu den INSTALLED_APPS hinzufügen
- Sicherstellen, dass ‘django.template.loaders.app_directories.load_template_source’ in den Template Loaders eingetragen ist
- Sicherstellen, dass das sites framework aktiviert ist
Danach sind nur noch wenige Einträge in der Datei urls.py zu machen…
from django.conf.urls.defaults import *
from django.contrib.sitemaps import FlatPageSitemap, GenericSitemap
from mysite.blog.models import Entry
info_dict = {
'queryset': Entry.objects.all(),
'date_field': 'pub_date',
}
sitemaps = {
'flatpages': FlatPageSitemap,
'blog': GenericSitemap(info_dict, priority=0.6),
}
urlpatterns = patterns('',
# ...
(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})
)
Mehr ist nicht zu machen
Es ist sogar möglich, bei Aenderungen am Model Google zu pingen, so dass die Sitemaps neu eingelesen werden…
from django.contrib.sitemaps import ping_google
class Entry(models.Model):
# ...
def save(self):
super(Entry, self).save()
try:
ping_google()
except Exception:
# Bare 'except' because we could get a variety
# of HTTP-related exceptions.
pass
|
Kommentar hinzufügen