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