diff --git a/landing_page/landing_page/settings.py b/landing_page/landing_page/settings.py
index a6206e02..abfac00d 100644
--- a/landing_page/landing_page/settings.py
+++ b/landing_page/landing_page/settings.py
@@ -36,6 +36,7 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
+ 'django.contrib.sitemaps',
]
MIDDLEWARE = [
diff --git a/landing_page/landing_page/urls.py b/landing_page/landing_page/urls.py
index 0f50e6ca..4e7cbba3 100644
--- a/landing_page/landing_page/urls.py
+++ b/landing_page/landing_page/urls.py
@@ -15,8 +15,14 @@
"""
from django.contrib import admin
from django.urls import include, path
+from django.contrib.sitemaps.views import sitemap
urlpatterns = [
path('', include('mainpage.urls')),
path('admin/', admin.site.urls),
+ path('sitemap.xml', sitemap, {'sitemaps': sitemaps},
+ name='django.contrib.sitemaps.views.sitemap')
]
+
+
+
diff --git a/landing_page/mainpage/static/robots.txt b/landing_page/mainpage/static/robots.txt
index 6d286774..46a85778 100644
--- a/landing_page/mainpage/static/robots.txt
+++ b/landing_page/mainpage/static/robots.txt
@@ -1,3 +1,16 @@
User-agent: *
Disallow: *lessons*
+
+User-agent: *
+Disallow: /?ref=
+
+User-agent: *
+Disallow: /?trk=
+
+User-agent: *
+Disallow: /?source=
+
+User-agent: *
+Disallow: /?5030bbc2
+
Host: https://learn.python.ru/
\ No newline at end of file
diff --git a/landing_page/mainpage/static/sitemap.xml b/landing_page/mainpage/static/sitemap.xml
new file mode 100644
index 00000000..51ee6599
--- /dev/null
+++ b/landing_page/mainpage/static/sitemap.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ https://learn.python.ru/
+ 2021-03-16T16:54:50+00:00
+ 1.00
+
+
+ https://learn.python.ru/projects
+ 2021-03-16T16:54:50+00:00
+ 0.80
+
+
+
+
\ No newline at end of file
diff --git a/landing_page/mainpage/templates/mainpage/include/track_bots.html b/landing_page/mainpage/templates/mainpage/include/track_bots.html
index 45ddfbf1..50358c1c 100644
--- a/landing_page/mainpage/templates/mainpage/include/track_bots.html
+++ b/landing_page/mainpage/templates/mainpage/include/track_bots.html
@@ -1,5 +1,5 @@
Трек «Чат-боты»
-Базовый бот для Телеграм
+Базовый бот для Телеграм
Как устроены боты?
Пишем простого бота
@@ -7,7 +7,7 @@ Базовый бот для Телеграм
Подключаем логирование
-Расширяем возможности бота
+Расширяем возможности бота
Реализуем логику игры в числа
Учимся отправлять картинки
@@ -15,7 +15,7 @@ Расширяем возможности бота
Научим бота запоминать пользовательские данные
-Пользовательские клавиатуры
+Пользовательские клавиатуры
Добавляем клавиатуру
Получаем геокоординаты пользователя
@@ -23,21 +23,21 @@ Пользовательские клавиатуры
Пишем README
-Интеграция бота с внешними сервисами
+Интеграция бота с внешними сервисами
Как бот принимает изображения?
Работаем с сервисом машинного обучения clarifai
Добавляем распознавание изображений в бота
-Диалоговые боты
+Диалоговые боты
Как работают диалоги?
Реализуем анкетирование пользователей при помощи диалога
Обрабатываем fallbacks
-Знакомство с MongoDB
+Знакомство с MongoDB
Знакомство с MongoDB
Подключаемся к БД при помощи Python
@@ -46,7 +46,7 @@ Знакомство с MongoDB
Используем Flake8 для улучшения качества кода
-Автоматически выполняемые задания
+Автоматически выполняемые задания
Создадим простое повторяющееся задание
Рассылаем сообщение всем подписчикам по расписанию
@@ -54,7 +54,7 @@ Автоматически выполняемые задания
Создаем уведомления динамически
-Использование Inline-клавиатур
+Использование Inline-клавиатур
Добавляем inline-клавиатуру к картинке
Принимаем данные и сохраняем голос пользователя
@@ -62,7 +62,7 @@ Использование Inline-клавиатур
Вычисляем рейтинг картинок
-Тестирование чат-ботов
+Тестирование чат-ботов
Установка и настройка pytest
Тестируем простые функции
diff --git a/landing_page/mainpage/templates/mainpage/include/track_ds.html b/landing_page/mainpage/templates/mainpage/include/track_ds.html
index c168df3c..c10410e1 100644
--- a/landing_page/mainpage/templates/mainpage/include/track_ds.html
+++ b/landing_page/mainpage/templates/mainpage/include/track_ds.html
@@ -1,12 +1,12 @@
Трек «Анализ данных»
-Знакомство с Jupyter
+Знакомство с Jupyter
Установка Jupyter
Основы работы с Jupyter Notebook
Практическая задача: подсчет остановок
-Знакомство с Pandas
+Знакомство с Pandas
Pandas: знакомство с Series
Pandas: знакомство с DataFrame
@@ -14,32 +14,32 @@ Знакомство с Pandas
Практическая задача: подсчет остановок при помощи Pandas
-Загрузка данных в dataframe из внешних источников
+Загрузка данных в dataframe из внешних источников
Загрузка данных из Excel
Загрузка данных с веб-страниц
Сводные таблицы в Pandas
-Визуализация данных
+Визуализация данных
Знакомство с Matplotlib
Типы графиков: простой график, круговая диаграмма, гистограмма
-Знакомство с Kaggle.com
+Знакомство с Kaggle.com
Знакомство с Kaggle.com
Изучаем датасет Titanic
-Чистка датасета и визуализация данных
+Чистка датасета и визуализация данных
Чистим данные и создаем новые колонки на основе имеющихся данных
Добавляем графики и проверяем гипотезы
-Делаем предсказания
+Делаем предсказания
Знакомство с scikit-learn
Делаем предсказания
diff --git a/landing_page/mainpage/templates/mainpage/include/track_main.html b/landing_page/mainpage/templates/mainpage/include/track_main.html
index 6484d17e..460b2424 100644
--- a/landing_page/mainpage/templates/mainpage/include/track_main.html
+++ b/landing_page/mainpage/templates/mainpage/include/track_main.html
@@ -1,5 +1,5 @@
Основной трек
-Знакомство с python
+Знакомство с python
Работа в командной строке, файлы .py
Простые и комплексные типы данных
@@ -7,7 +7,7 @@ Знакомство с python
Работа с системой контроля версий git
-Управление работой программы
+Управление работой программы
Условный оператор if
Циклы for и while
@@ -15,7 +15,7 @@ Управление работой программы
Работа с модулями и пакетный менеджер pip
-Файлы, даты, виртуальное окружение
+Файлы, даты, виртуальное окружение
Настройка и работа с виртуальным окружением
Работа с датой и временем
@@ -24,14 +24,14 @@ Файлы, даты, виртуальное окружение
Введение в объектно-ориентированное программирование
-Основы командной работы
+Основы командной работы
Основы проектирование программных продуктов
Планирование и ведение проекта в трекере задач
Командная работа над проектом при помощи git и github
-Качество кода
+Качество кода
Что такое качество кода?
6 способов сделать код лучше
@@ -39,14 +39,14 @@ Качество кода
Как документировать программу
-Введение в тестирование
+Введение в тестирование
Что такое тестирование и зачем оно нужно?
Что и как тестировать?
Инструменты тестирования кода
-Размещение проекта в Интернете
+Размещение проекта в Интернете
Разворачиваем виртуальный сервер
Принцип работы SSH
diff --git a/landing_page/mainpage/templates/mainpage/include/track_web.html b/landing_page/mainpage/templates/mainpage/include/track_web.html
index 4d8c9701..1da44524 100644
--- a/landing_page/mainpage/templates/mainpage/include/track_web.html
+++ b/landing_page/mainpage/templates/mainpage/include/track_web.html
@@ -1,5 +1,5 @@
Трек «Веб-разработка»
-Простой веб-сервер и использование внешних API
+Простой веб-сервер и использование внешних API
Как работает интернет?
Простое веб-приложение на Flask
@@ -8,7 +8,7 @@ Простой веб-сервер и использование внешн
-Основы HTML и парсинг сайтов
+Основы HTML и парсинг сайтов
Основы HTML
Знакомимся с фреймворком Bootstrap
@@ -16,7 +16,7 @@ Основы HTML и парсинг сайтов
Парсинг сайтов при помощи BeautifulSoup
-Основы работы с базами данных
+Основы работы с базами данных
Что такое базы данных и как они работают?
Знакомимся с Flask-SQLAlchemy
@@ -24,7 +24,7 @@ Основы работы с базами данных
Выводим новости на главной странице
-Веб-формы и регистрация пользователей
+Веб-формы и регистрация пользователей
Как устроены веб-формы
Создаем форму логина
@@ -32,7 +32,7 @@ Веб-формы и регистрация пользователей
Организуем проверку прав доступа
-Разбиение проекта на модули
+Разбиение проекта на модули
Что такое Blueprint?
Выносим функционал в блюпринты
@@ -40,14 +40,14 @@ Разбиение проекта на модули
Создаем свой декоратор
-Миграции баз данных
+Миграции баз данных
Что такое миграции?
Добавим поле в модель и создадим миграцию
Регистрация пользователей и работа с пользователями в шаблоне
-Автоматический запуск задач с помощью Celery
+>Автоматический запуск задач с помощью Celery
Создадим отдельный модуль для получения новостей
Постобработка текстов новостей
@@ -55,7 +55,7 @@ Автоматический запуск задач с помощью Celer
Настройка сбора новостей по расписанию
-Добавляем комментарии на сайт
+Добавляем комментарии на сайт
Создаем модель Comment
Делаем запросы из связанных таблиц
diff --git a/landing_page/mainpage/templates/mainpage/index.html b/landing_page/mainpage/templates/mainpage/index.html
index 6b4bec0c..e726275a 100644
--- a/landing_page/mainpage/templates/mainpage/index.html
+++ b/landing_page/mainpage/templates/mainpage/index.html
@@ -20,7 +20,8 @@
- Learn Python - Курсы Python в Москве и онлайн
+ Курсы Python – обучение программированию на Python в Москве и онлайн | Learn Python
+