Django – marco de mapa del sitio

Prerrequisitos: Introducción e instalación de Django 

Los motores de búsqueda rastrean e indexan las URL del sitio para mostrarlas en sus resultados de búsqueda. Los motores de búsqueda recomiendan el envío explícito de un archivo XML que consta de todas las URL importantes y actualizadas de su sitio para un rastreo e indexación más rápidos. Django presenta un Sitemap Framework para facilitar el proceso de generar el archivo XML y hacer ping a los motores de búsqueda para rastrear. 

Entendamos la creación del mapa del sitio usando Geeks For Geeks como ejemplo. Supongamos que se publican 100 artículos cada día en Geeks For Geeks, y tenemos que crear un archivo XML que consta de las URL de esos artículos.

Siga   Introducción e instalación de Django para configurar un entorno virtual e instalar Django.

Paso 1: Inicie un proyecto siguiendo el comando

django-admin startproject geeks_site

Paso 2: cambie el directorio a geeks_site

cd geeks_site

Paso 3: crea una aplicación llamada blog

python manage.py startapp blog

Paso 4: Agrega tu aplicación a settings.py

Python3

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog.apps.BlogConfig',
]

Paso 5: cree un modelo llamado Artículo en la aplicación de blog

  • Campos :
    • title: Para almacenar los títulos de los objetos Article
    • lastedit_date: para almacenar las últimas fechas actualizadas de los objetos Article
  • Método :
    • get_absolute_url: Devuelve la URL absoluta que apunta a un objeto

modelos.py

Python3

class Article(models.Model):
    title = models.CharField(max_length=200)
    lastedit_date = models.DateTimeField()
  
    def get_absolute_url(self):
        return "/p/%i/" % self.id

Paso 6: Registre su modelo en blog/admin.py para que aparezca en el panel de administración.

administrador.py

Python3

# blog/admin.py
from django.contrib import admin 
from .models import Article
  
admin.site.register(Article)

Paso 7: Ahora, para migrar todos sus cambios e iniciar el servidor, ejecute los siguientes comandos en su terminal 

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

Cree una cuenta de superusuario para iniciar sesión en el panel de administración

python manage.py createsuperuser

Ahora, visite el panel de administración en http://127.0.0.1:8000/admin/

Ahora, instalemos e inicialicemos el marco del mapa del sitio de Django

Instalación de mapa del sitio

Para usar Sitemap Framework, deberá realizar los siguientes cambios en su configuración.py :

  • Sitemap Framework no está habilitado de forma predeterminada en Django, así que agregue lo siguiente a INSTALLED_APPS
django.contrib.sitemaps
  • Sitemap Framework utiliza otro Sites Framework incorporado de Django para su funcionamiento. Además, agregue lo siguiente a INSTALLED_APPS
django.contrib.sites

Luego agregue lo siguiente después de la lista INSTALLED_APPS

SITE_ID = 1

Python3

# Application definition
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
      'django.contrib.sitemaps,
    'blog'
]
  
SITE_ID = 1

Inicialización del mapa del sitio

Paso 1: Cree un archivo llamado sitemap.py en su aplicación de blog

Paso 2: cree una clase de mapa del sitio para su modelo de artículo en sitemap.py

  • La clase ArticleSitemap sobrescribe los dos métodos siguientes de la clase Sitemap
    • artículos: devuelve todos los objetos del artículo, cuyas URL se incluirán en el archivo XML
    • lastmod: devuelve la última fecha de modificación de un objeto utilizando el campo lastedit_date del modelo de artículo en la aplicación de blog

sitemap.py

Python3

from django.contrib.sitemaps import Sitemap
from .models import Article
  
class ArticleSitemap(Sitemap):
    def items(self):
        return Article.objects.all()
        
    def lastmod(self, obj):
        return obj.lastedit_date

Paso 3: Agrega estas líneas a tu blog/urls.py.

Python3

from django.contrib.sitemaps.views import sitemap
from blog.sitemap import ArticleSitemap
from django.urls import path
  
  
path('sitemap.xml', sitemap, {'sitemaps': {'article' : ArticleSitemap}},
     name='django.contrib.sitemaps.views.sitemap')

Aquí ‘sitemap.xml ‘ apunta a la vista del mapa del sitio de Sitemap Framework con la clase ArticleSitemap creada en el paso anterior como parámetro requerido en el formato especificado, es decir, {‘sitemaps’: {‘article’ : ArticleSitemap}

Ahora, vuelva a migrar todos sus cambios e inicie el servidor.

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

Paso 4: en la sección Artículo, cree algunos artículos. Después de hacer clic en el botón Agregar, verá los siguientes campos. 

cuando haga clic en la sección Sitios, verá algo como esto

Realice los siguientes cambios en la sección Sitios del Panel de administración

Ahora visite http://127.0.0.1:8000/sitemap.xml en su máquina local. El archivo XML final que consta de todas las URL se representará como:

Publicación traducida automáticamente

Artículo escrito por prakharpratyush y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *