Инструкция
Приготовления
Сначала нужно создать файл .env по аналогии с файлом .env.example:
SECRET_KEY
- ключ проекта.
DEBUG
- режим отладки. Допустимые значения - True/False.
ALLOWED_HOSTS
- список хостингов, разделенных пробелом.
DB_ENGINE
- engine БД. Если не задан, то по-умолчанию используется MySql.
DB_NAME
- имя БД.
DB_USER
- пользователь для БД.
DB_PASSWORD
- пароль для БД.
DB_ROOT_PASSWORD
- root пароль для MySql.
DB_HOST
- хост БД. Если приложение запускается локально, то нужно указать localhost
, или db
, если запускается в
docker контейнере.
DB_PORT
- порт БД. Если не задан, по-умолчанию используется 3306
.
Запуск в ручном режиме
Для запуска в ручном режиме нужно создать базу данных и выполнить в консоли несколько команд:
pip install -r requirements.txt
- для установки всех необходимых пакетов для работы.
python manage.py migrate
- для применения миграций в БД.
python manage.py runserver
- для запуска сервера. По-умолчанию адрес http://localhost:8000/
.
В отдельной консоли нужно выполнить:
python manage.py add_new_posts [--repeat 600]
- для создания задания на поиск и сохранение новых постов.
Аргумент --repeat
служит для задания повторов. 600
- количество секунд между повторами.
python manage.py process_tasks
- для отслеживания и выполнения фоновых задач.
Запуск в docker контейнере
Для запуска приложения в docker контейнере нужно в консоли выполнить команду docker-compose up -d --build
при первом
запуске, или docker-compose up -d
при повторном запуске. Если база данных отсутствует, то она будет создана в папке
приложения.
Работа с приложением
curl -X GET http://localhost:8000/posts/
- для получения списка постов. По-умолчанию возвращает 5 записей.
Доступные параметры запроса - order
, offset
, limit
. Параметры можно совмещать.
order
- принимает значение поля для сортировки. Доступны значения id
, title
, url
, created
. Например, title
-
для сортировки по заголовку поста по возрастанию в алфавитном порядке, или -title
- для сортировки по убыванию.
offset
- принимает целые положительные числа. Служит для смещения относительно начала списка постов.
limit
- принимает целые положительные числа. Служит для ограничения количества постов.
Если передан параметр, отличный от этих, параметру order
передано недопустимое значение, параметрам offset
и limit
переданы недопустимые значения или слишком большие значения, то будут возвращены соответствующие ошибки.