Рубрики
Без рубрики

Добавьте карту сайта на свой сайт Django

Вы можете перейти к шагу 4, если хотите проверить его с помощью своего существующего проекта Показатель 1. Введение 2- e … Tagged с начинающими, Codenewbie, Django, Python.

Вы можете перейти к шагу 4, если хотите проверить его с помощью своего существующего проекта

1- Intorduction 2- Настройка среды 3- Настройка проекта 4- Добавить карту сайта

Вступление

Карта сайта сообщает поисковым системам, какие страницы и файлы, которые вы считаете важными на вашем сайте, а также предоставляет ценную информацию об этих файлах. Это помогает поисковым системам быстро ползти на вашем сайте.

Настройка среды

  • Создайте свою виртуальную среду или используйте существующую: Python -m venv env
  • активируйте свою виртуальную среду источник Env/корзин/активировать
  • Установите Django PIP установить Django

Настройка проекта

  • Создайте новую папку Mkdir django-add-sitemap && cd django-add-sitemap
  • Создать новый проект django-admin startproject config.
  • Создать новое приложение Python Manage.py StartApp Blog и добавить его в Insted_apps
  • Редактировать blog/models.py и вставьте в него этот код:
from django.db import models
from django.urls import reverse

class Post(models.Model):
    STATUS_CHOICES = [('published', 'Published'), ('draft', 'Draft')]
    title = models.CharField(max_length=250)
    content = models.TextField()
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    status = models.CharField(max_length=12, choices=STATUS_CHOICES, default='draft')

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('post-detail', kwargs={'slug': self.slug})

@receiver(post_save, sender=Post)
def save_slug(sender, instance=None, created=False, **kwargs):
    if created:
        instance.slug = slugify(instance.title)
        instance.save()
  • запустить Python Manage.py Makemigrations Тогда Python Manage.py Migrate И не забудьте создать суперпользователь Python Manage.py CreateSuperuser
  • Добавить сообщение в admin.py и добавьте несколько данных для тестирования позже.
  • Сначала добавить django.contrib.sitemaps к Insted_apps
  • Создать blog/sitemaps.py Затем вставьте в него этот код:
from django.contrib import sitemaps
from .models import Post


class PostSitemap(sitemaps.Sitemap):
    changefreq = "weakly"
    priority = 0.8

    def items(self):
        return Post.objects.filter(status='published')

    def lastmod(self, obj):
        return obj.updated

changefreq Этот атрибут используется, чтобы сказать, как часто меняется ваш сайт. Другие значения [«Всегда», «ежечасно», «ежедневно», «ежемесячно», «ежегодно», «никогда»] Анкет Вы можете переопределить по умолчанию Место Метод, если у вас нет get_absolute_url в вашей модели.

  • Наконец, сопоставьте URL для сайтов в config/urls.py или блог/urls.py файл.
# config/urls.py
from django.contrib.sitemaps.views import sitemap
from blog.sitemaps import PostSitemap

sitemaps = {
    "posts": PostSitemap,
}

urlpatterns = [
    ..........
    path("sitemap.xml", sitemap, {"sitemaps": sitemaps}, name="sitemap"),
    .........
]

Вот как это выглядит в браузере:

исходный код загружается в GitHub: https://github.com/abdulshak1999/python/tree/main/django/website_sitemap

Для получения дополнительной информации проверьте это: https://docs.djangoproject.com/en/3.0/ref/contrib/sitemaps/

Оригинал: “https://dev.to/abdulshakoor/add-sitemap-to-your-django-site-2eg9”