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.txtsitemap.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 происходит только если:
- В robots.txt отсутствует строка с "Sitemap"
- Файл 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)
- Email: magilyas.doma.09@list.ru
- GitHub: MagIlyasDOMA
Вклад в проект
Приветствуются пул-реквесты и сообщения о проблемах. Пожалуйста, создавайте issue на GitHub перед началом работы над большими изменениями.
Поддержка
Если у вас возникли проблемы или вопросы:
- Проверьте, что файлы robots.txt и sitemap.xml существуют по указанным путям
- Убедитесь, что настройки ROBOTS_PATH и SITEMAP_PATH указаны корректно
- Проверьте права доступа к файлам
- Создайте issue на GitHub
Примечание: Это приложение не генерирует sitemap.xml автоматически. Оно только обслуживает существующие статические файлы. Для динамической генерации sitemap используйте стандартный Django-фреймворк sitemaps или другие специализированные приложения.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_robots_and_sitemap-1.0.2.tar.gz.
File metadata
- Download URL: django_robots_and_sitemap-1.0.2.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20e10d39c85fedbc401a0de531609ec6fab2291b27bcd19c6ec2f9b0716dabcf
|
|
| MD5 |
5c36dbf0f8b12c1cb21dd93937e7a994
|
|
| BLAKE2b-256 |
bd5979adca014ff9375b8a704fa000aafb1a06b912b1a80c7ff90e674d6f1384
|
File details
Details for the file django_robots_and_sitemap-1.0.2-py3-none-any.whl.
File metadata
- Download URL: django_robots_and_sitemap-1.0.2-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9009b572fc490606bf764bd0333143346c901829f4ce6bcb2caa479a2f958be
|
|
| MD5 |
4b29c94319f08d62aae18b926d5e98dc
|
|
| BLAKE2b-256 |
b9ad7937267bd180525c804ce19d7b162a1350dff771a6098bd796c06fc4033a
|