Django — Sitemap Framework

Sitemap Framework Программирование и разработка

Поисковые системы сканируют и индексируют URL-адреса сайта, чтобы отображать их в результатах поиска. Поисковые системы рекомендуют явную отправку XML-файла, содержащего все важные и обновленные URL-адреса вашего сайта, для более быстрого сканирования и индексации. Django предлагает платформу Sitemap Framework, чтобы упростить процесс создания XML-файла и отправки запросов поисковым системам на сканирование.

Давайте разберемся с созданием карты сайта на примере гиков для гиков. Предположим, что каждый день на сайте Geeks For Geeks публикуется 100 статей, и мы должны создать XML-файл, состоящий из URL-адресов этих статей.

Следуйте инструкциям по установке и настройке Django, чтобы настроить виртуальную среду и установить Django.

Шаг 1. Запустите проект, выполнив следующую команду

django-admin startproject geeks_site

Шаг 2. Измените каталог на geeks_site

cd geeks_site

Шаг 3. Создайте приложение с именем blog

python manage.py startapp blog

Шаг 4. Добавьте свое приложение в settings.py

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

Шаг 5. Создайте модель с именем Article в приложении для блога

Поля:

  • title: для хранения заголовков объектов статьи
  • lastedit_date: для хранения последних обновленных дат объектов Article

Метод:

  • get_absolute_url: возвращает абсолютный URL-адрес, указывающий на объект

models.py

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

Шаг 6: Зарегистрируйте свою модель в blog / admin.py, чтобы она отображалась в панели администратора.

admin.py

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

Шаг 7. Теперь, чтобы перенести все ваши изменения и запустить сервер, выполните следующие команды в своем терминале.

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

Создайте учетную запись суперпользователя для входа в панель администратора

python manage.py createsuperuser

Теперь посетите панель администратора по адресу http://127.0.0.1:8000/admin/

Теперь посетите панель администратора по адресу

Теперь давайте установим и инициализируем платформу Django Sitemap.

Установка sitemap

Чтобы использовать Sitemap Framework, вам необходимо внести следующие изменения в файл settings.py :

  • Sitemap Framework невключен по умолчанию в Django, поэтому добавьте следующее в INSTALLED_APPS
django.contrib.sitemaps
  • Sitemap Framework использует для своей работы другую встроенную платформу сайтов Django. Также добавьте следующее в INSTALLED_APPS
django.contrib.sites
  • Затем добавьте следующее после списка INSTALLED_APPS
SITE_ID = 1
# 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

Инициализация sitemap

Шаг 1. Создайте файл с именем sitemap.py в приложении для блога.

Шаг 2. Создайте класс Sitemap для своей модели статьи в sitemap.py

Класс ArticleSitemap перезаписывает следующие два метода класса Sitemap.

  • items: возвращает все объекты статьи, URL-адреса которых будут включены в XML-файл
  • lastmod: возвращает дату последнего изменения объекта с использованием поля lastedit_date модели статьи в приложении блога

sitemap.py

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

Шаг 3. Добавьте эти строки в свой блог / urls.py.

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')

Здесь ’sitemap.xml ’ указывает на представление карты сайта фреймворка Sitemap с классом ArticleSitemap, созданным на предыдущем шаге в качестве обязательного параметра в указанном формате, то есть {’sitemaps’: {’article’: ArticleSitemap}

Теперь снова перенесите все свои изменения и запустите сервер

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

Шаг 4: В разделе статей создайте несколько статей. После нажатия кнопки добавления вы увидите поля ниже.

После нажатия кнопки добавления вы увидите поля ниже

Когда вы нажмете на раздел Сайты, вы увидите что-то вроде этого.

Когда вы нажмете на раздел Сайты, вы увидите что-то вроде этого

Внесите следующие изменения в раздел Сайты панели администратора.

Внесите следующие изменения в раздел Сайты панели администратора

Теперь посетите http://127.0.0.1:8000/sitemap.xml на своем локальном компьютере. Окончательный XML-файл, состоящий из всех URL-адресов, будет отображаться как:

Окончательный XML-файл, состоящий из всех URL-адресов

Читайте также:  Как добавить проверку формы в Next.js?
Оцените статью
bestprogrammer.ru
Добавить комментарий