Skip to main content

Django Robots and Sitemap

Простое Django-приложение для обслуживания файлов robots.txt и sitemap.xml с поддержкой автоматического добавления Sitemap в robots.txt.

Особенности

  • 📄 Автоматическое обслуживание robots.txt и sitemap.xml
  • 🔗 Автоматическое добавление ссылки на Sitemap в robots.txt (если отсутствует)
  • ⚙️ Настраиваемые пути к файлам через настройки Django
  • 🔒 Проверка существования файлов перед отдачей (возвращает 404 если файл не найден)
  • 📦 Простая установка и минимальные зависимости
  • 🐍 Поддержка Python 3.6+
  • 🎯 Поддержка Django 2.2+

Установка

pip install django-robots-and-sitemap

Быстрый старт

1. Добавьте приложение в INSTALLED_APPS:

# settings.py
INSTALLED_APPS = [
    # ...
    'robots_and_sitemap',
    # ...
]

2. Добавьте URL-маршруты в ваш основной urls.py:

# urls.py
from django.urls import path, include

urlpatterns = [
    # ...
    path('', include('robots_and_sitemap.urls')),
    # ...
]

3. Создайте файлы в корне вашего проекта:

- `robots.txt` - для правил robots.txt
- `sitemap.xml` - для карты сайта

Использование

Стандартная конфигурация

По умолчанию приложение ищет файлы в корневой директории Django проекта (BASE_DIR):

  • robots.txt - по пути BASE_DIR/robots.txt
  • sitemap.xml - по пути BASE_DIR/sitemap.xml

Приложение автоматически проверит наличие Sitemap: директивы в robots.txt и добавит её при необходимости.

Кастомизация путей к файлам

Вы можете указать собственные пути к файлам через настройки Django:

# settings.py
import os
from pathlib import Path

# Укажите абсолютные или относительные пути
ROBOTS_PATH = Path('/absolute/path/to/your/robots.txt')
# или
ROBOTS_PATH = BASE_DIR / 'static' / 'robots.txt'
# или
ROBOTS_PATH = os.path.join(BASE_DIR, 'custom_folder', 'robots.txt')

SITEMAP_PATH = BASE_DIR / 'static' / 'sitemap.xml'

Пример robots.txt

# robots.txt
User-agent: *
Allow: /

# Sitemap будет автоматически добавлен если отсутствует

Пример sitemap.xml

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2024-01-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
</urlset>

Настройки

Настройка Тип По умолчанию Описание
ROBOTS_PATH Path или str BASE_DIR / 'robots.txt' Путь к файлу robots.txt
SITEMAP_PATH Path или str BASE_DIR / 'sitemap.xml' Путь к файлу sitemap.xml

API

URL-маршруты

  • /robots.txt - возвращает содержимое файла robots.txt
  • /sitemap.xml - возвращает содержимое файла sitemap.xml

Декоратор file_exists

from robots_and_sitemap.decorators import file_exists
from pathlib import Path

@file_exists(Path('/path/to/file.txt'))
def my_view(request):
    # Код выполнится только если файл существует
    pass

Обработка ошибок

  • Если файл robots.txt или sitemap.xml не найден по указанному пути, возвращается HTTP 404
  • Автоматическое добавление Sitemap в robots.txt происходит только если:
    1. В robots.txt отсутствует строка с "Sitemap"
    2. Файл sitemap.xml существует и доступен

Требования

  • Python 3.6+
  • Django 2.2+
  • requests 2.0+ (для автоматического добавления Sitemap)

Разработка

Установка для разработки

git clone https://github.com/MagIlyasDOMA/django-robots-and-sitemap.git
cd django-robots-and-sitemap
pip install -e .

Лицензия

MIT License. См. файл LICENSE для подробностей.

Автор

Маг Ильяс DOMA (MagIlyasDOMA)

Вклад в проект

Приветствуются пул-реквесты и сообщения о проблемах. Пожалуйста, создавайте issue на GitHub перед началом работы над большими изменениями.

Поддержка

Если у вас возникли проблемы или вопросы:

  1. Проверьте, что файлы robots.txt и sitemap.xml существуют по указанным путям
  2. Убедитесь, что настройки ROBOTS_PATH и SITEMAP_PATH указаны корректно
  3. Проверьте права доступа к файлам
  4. Создайте issue на GitHub

Примечание: Это приложение не генерирует sitemap.xml автоматически. Оно только обслуживает существующие статические файлы. Для динамической генерации sitemap используйте стандартный Django-фреймворк sitemaps или другие специализированные приложения.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_robots_and_sitemap-1.0.2.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_robots_and_sitemap-1.0.2-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file django_robots_and_sitemap-1.0.2.tar.gz.

File metadata

File hashes

Hashes for django_robots_and_sitemap-1.0.2.tar.gz
Algorithm Hash digest
SHA256 20e10d39c85fedbc401a0de531609ec6fab2291b27bcd19c6ec2f9b0716dabcf
MD5 5c36dbf0f8b12c1cb21dd93937e7a994
BLAKE2b-256 bd5979adca014ff9375b8a704fa000aafb1a06b912b1a80c7ff90e674d6f1384

See more details on using hashes here.

File details

Details for the file django_robots_and_sitemap-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_robots_and_sitemap-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e9009b572fc490606bf764bd0333143346c901829f4ce6bcb2caa479a2f958be
MD5 4b29c94319f08d62aae18b926d5e98dc
BLAKE2b-256 b9ad7937267bd180525c804ce19d7b162a1350dff771a6098bd796c06fc4033a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page