Поисковые системы сканируют и индексируют URL-адреса сайта, чтобы отображать их в результатах поиска. Поисковые системы рекомендуют явную отправку XML-файла, содержащего все важные и обновленные URL-адреса вашего сайта, для более быстрого сканирования и индексации. Django предлагает платформу Sitemap Framework, чтобы упростить процесс создания XML-файла и отправки запросов поисковым системам на сканирование.
Давайте разберемся с созданием карты сайта на примере гиков для гиков. Предположим, что каждый день на сайте Geeks For Geeks публикуется 100 статей, и мы должны создать XML-файл, состоящий из URL-адресов этих статей.
Следуйте инструкциям по установке и настройке Django, чтобы настроить виртуальную среду и установить Django.
- Шаг 1. Запустите проект, выполнив следующую команду
- Шаг 2. Измените каталог на geeks_site
- Шаг 3. Создайте приложение с именем blog
- Шаг 4. Добавьте свое приложение в settings.py
- Шаг 5. Создайте модель с именем Article в приложении для блога
- Шаг 6: Зарегистрируйте свою модель в blog / admin.py, чтобы она отображалась в панели администратора.
- Шаг 7. Теперь, чтобы перенести все ваши изменения и запустить сервер, выполните следующие команды в своем терминале.
- Инициализация sitemap
Шаг 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-адресов, будет отображаться как: