Skip to main content

A Django plugin that adds support for sitemap.xml and robots.txt

Project description

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 или другие специализированные приложения.

Project details


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.

Supported by

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