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 или другие специализированные приложения.
Metadata
Release files for django-robots-and-sitemap 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_robots_and_sitemap-1.0.2.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_robots_and_sitemap-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.7 kB
Release files / django_robots_and_sitemap-1.0.2.tar.gz
| Download URL | django_robots_and_sitemap-1.0.2.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
20e10d39c85fedbc401a0de531609ec6fab2291b27bcd19c6ec2f9b0716dabcf
|
|
BLAKE2b-256 checksum How to use checksums |
bd5979adca014ff9375b8a704fa000aafb1a06b912b1a80c7ff90e674d6f1384
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / django_robots_and_sitemap-1.0.2-py3-none-any.whl
| Download URL | django_robots_and_sitemap-1.0.2-py3-none-any.whl |
|---|---|
| Size | 6.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9009b572fc490606bf764bd0333143346c901829f4ce6bcb2caa479a2f958be
|
|
BLAKE2b-256 checksum How to use checksums |
b9ad7937267bd180525c804ce19d7b162a1350dff771a6098bd796c06fc4033a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|