Este artículo es una continuación de Blog CMS Project en Django. Echa un vistazo a esto aquí: Creación de blog CMS (Sistema de gestión de contenido) con Django
Fuente RSS (Really Simple Syndication)
RSS (Really Simple Syndication) es una fuente web que permite a los usuarios y aplicaciones acceder a actualizaciones de sitios web en un formato estandarizado y legible por computadora. Estos feeds pueden, por ejemplo, permitir a un usuario realizar un seguimiento de muchos sitios web diferentes en un único agregador de noticias. Django viene con una biblioteca para crear fuentes atómicas para nuestro blog.
Creación de vistas para RSS Feed –
Vaya al directorio de la aplicación del blog y cree un archivo feeds.py y pegue el siguiente código.
Python3
from django.contrib.syndication.views import Feed from django.template.defaultfilters import truncatewords from .models import posts from django.urls import reverse from django.utils.feedgenerator import Atom1Feed class blogFeed(Feed): title = "geeksforgeeks" link = "/posts/" description = "RSS feed of GeeksForGeeks" def items(self): return posts.objects.filter(status = 1) def item_title(self, item): return item.title def item_description(self, item): return item.metades def item_link(self, item): return reverse('post_detail', args =[item.slug]) class atomFeed(Feed): feed_type = Atom1Feed
Crear rutas para RSS Feed –
Para enrutar la fuente RSS, vaya al archivo urls.py de la aplicación que está utilizando para generar la fuente y agregue la ruta
Python3
# importing django routing libraries from . import views from django.urls import path, include from .views import * from .feeds import blogFeed urlpatterns = [ ..... # RSS route path("posts / feed", blogFeed(), name ="feed"), ..... ]
Alimentación de muestra
mapa del sitio –
El protocolo Sitemap permite a un webmaster informar a los motores de búsqueda sobre las URL de un sitio web que están disponibles para rastrear. Un Sitemap es un archivo XML que enumera las URL de un sitio. Permite a los webmasters incluir información adicional sobre cada URL: cuándo se actualizó por última vez, con qué frecuencia cambia. Esto permite que los motores de búsqueda rastreen el sitio de manera más eficiente y encuentren direcciones URL que puedan estar aisladas del resto del contenido del sitio.
Agregue mapas de sitio a INSTALLED_APPS –
Django también viene con un creador de mapas de sitio, vaya al directorio de aplicaciones del blog y agregue mapas de sitio a las aplicaciones instaladas en el archivo de configuración
Python3
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', # adding in installed apps 'django.contrib.sitemaps', ]
Crear mapa del sitio –
Cree un archivo sitemaps.py y pegue el siguiente código.
Python3
from django.contrib.sitemaps import Sitemap from .models import posts # siemap class class blogSitemap(Sitemap): # change frequency and priority changefreq = "daily" priority = 1.0 def items(self): return posts.objects.filter(status = 1) def lastmod(self, obj): return obj.updated_on
Agregar URL absoluta al modelo –
El mapa del sitio generado debe tener direcciones URL para nuestras publicaciones, por lo que debemos agregar una función simple a nuestro modelo para que la biblioteca del mapa del sitio pueda generar las direcciones URL de las publicaciones.
Python3
# add it in your model for which you want to generate sitemap def get_absolute_url(self): from django.urls import reverse return reverse("post_detail", kwargs ={"slug": str(self.slug)})
Enrutamiento para el mapa del sitio –
Ahora, para generar la URL del mapa del sitio, vaya al archivo urls.py y agregue la ruta
Python3
# adding sitemap libraries from django.contrib.sitemaps.views import sitemap from blog.sitemaps import blogSitemap blogsitemap = { "blog": blogSitemap, } urlpatterns = [ ..... # urls handling site maps path("sitemap.xml", sitemap, {"sitemaps": blogsitemap}, name ="sitemap"), ..... ]
Ahora puede ver fuentes RSS y Sitemaps en las direcciones URL asignadas
Ejemplo de mapa del sitio
Publicación traducida automáticamente
Artículo escrito por kushwanthreddy y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA