Recherche de site Web

Comment ajouter un flux RSS et un plan du site au projet Django ?


Introduction

L'incorporation de composants Web tels que les Plans de site et les flux RSS (Really Simple Syndication) peut offrir une multitude d'avantages tels que l'amélioration de l'accessibilité des utilisateurs, l'augmentation de la consommation de contenu de sites Web et l'amélioration des moteurs de recherche. performance. Les développeurs peuvent exploiter Django pour rationaliser le processus de création d'applications Web, ce qui aboutit à la création de sites Web exceptionnellement efficaces et conviviaux.

Qu'est-ce que le RSS et le plan du site ?

Les flux RSS sont des fichiers XML qui incluent des résumés du contenu d'un site Web, comme les titres et les descriptions des articles. Les utilisateurs peuvent simplement obtenir le matériel sans visiter le site Web en lisant ces fichiers à l'aide de lecteurs RSS. D'un autre côté, les plans de site sont des fichiers XML qui incluent une liste de chaque page d'un site Web. Ils contribuent à augmenter l'exposition du site Web sur les pages de résultats des moteurs de recherche en permettant aux moteurs de recherche d'explorer et d'indexer le site (SERP). La visibilité et l'expérience utilisateur d'un site Web peuvent être considérablement améliorées en ajoutant des flux RSS et des plans de site à un projet Django.

Étapes pour ajouter un RSS et un plan du site à un projet Django

Pour ajouter des flux RSS et des plans de site à un projet Django, nous devons suivre ces étapes -

  • Installez le package Django -

pip install django
  • Démarrer un projet Django

django-admin startproject example
  • Exécutez le serveur de développement depuis votre machine locale

python manage.py runserver
  • Démarrez une nouvelle application pour afficher le RSS et le plan du site

python manage.py startapp dj-app
  • python manage.py makemigrations python manage.py migrer

À ce stade, trois fichiers seront déjà créés dans le répertoire du projet d'application « dj-app ». Nous allons modifier le fichier settings.py, le fichier views.py et le fichier urls.py pour obtenir le résultat souhaité.

  • Ajoutez 'django.contrib.syndication' et 'django.contrib.sitemaps' à la liste INSTALLED_APPS dans le fichier settings.py

INSTALLED_APPS = [
   ...
   'django.contrib.syndication',
   'django.contrib.sitemaps',
]
  • Dans le fichier views.py, créez une classe pour le flux RSS qui hérite de la classe de flux de syndication Django -

from django.contrib.syndication.views import Feed

class MyFeed(Feed):
   title = "TutorialsPoint"
   link = "/blog/"
   description = "A TutorialsPoint Example of RSS and Sitemap"

   def items(self):
      return BlogPost.objects.order_by('-published')[:5]

   def item_title(self, item):
      return item.title

   def item_description(self, item):
      return item.body

   def item_link(self, item):
      return reverse('blog_post', args=[item.slug])
  • Créez un modèle d'URL pour le flux RSS -

from django.urls import path
from .feeds import MyFeed

urlpatterns = [
   ...
   path('feed/', MyFeed(), name='feed'),
]
  • Créez une classe pour le plan du site qui hérite de la classe du plan du site Django -

from django.contrib.sitemaps import Sitemap
from django.urls import reverse

class MySitemap(Sitemap):
   changefreq = "weekly"
   priority = 0.5

   def items(self):
      return [HomeView, AboutView, ContactView, BlogPostView]

   def location(self, item):
      return reverse(item)
  • Créez un modèle d'URL pour le plan du site dans urls.py -

from django.contrib.sitemaps.views import sitemap
from .sitemaps import MySitemap

sitemaps = {
   'pages': MySitemap(),
}

urlpatterns = [
   ...
   path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
]

Plongeons dans les détails des étapes illustrées ci-dessus −

Le code importe les packages et modules nécessaires depuis Django, notamment Feed, Sitemap et reverse.

  • Définissez une classe appelée MyFeed, qui étend la classe Feed et définit le titre, le lien et la description du flux RSS.

  • La méthode items est définie dans la classe MyFeed, qui renvoie les 5 derniers articles de blog triés par date de publication.

  • Les méthodes item_title, item_description et item_link sont également définies dans la classe MyFeed pour récupérer le titre, le corps et le slug de chaque article de blog.

  • La classe MySitemap est également définie, qui étend la classe Sitemap et définit la fréquence de modification et la priorité du plan du site.

  • La méthode items de la classe MySitemap renvoie une liste d'URL pour la page d'accueil, la page à propos, la page de contact et la page de publication de blog.

  • La méthode location dans la classe MySitemap est définie pour renvoyer l'URL de chaque élément de la liste en appelant la fonction inverse avec l'élément comme argument.

Conclusion

Cet article présente une technique pour intégrer un flux RSS et un plan de site dans des applications Web créées avec Django. La technique consiste à définir les classes MyFeed et MySitemap, qui sont respectivement des extensions des classes Feed et Sitemap. Ces cours fournissent des informations pertinentes et des connexions aux articles de blog et aux pages Web les plus récents, permettant la création d'un plan du site et d'un flux RSS pour un site Web. La classe MyFeed fournit le titre, le texte et le slug des cinq articles de blog les plus récents, classés par date de publication. La classe MySitemap utilise la méthode inverse pour acquérir les URL de la page principale du site Web, de la page À propos et d'autres pages pertinentes afin d'obtenir les URL de chaque élément. Cet exemple illustre comment Django peut être utilisé pour créer des fonctionnalités efficaces pour les applications en ligne telles que les plans de site et les flux RSS.

Articles connexes