- Получать запрошенные колонки
- Фильтровать данные по одной или нескольким колонкам: дате (from/to), магазинам, странам
- Группировать данные по одной или нескольким колонкам: датам, магазинам, странам
- Сортировать по любой из колонок
- Если не указано, какие колонки необходимо отобразить, то отобразятся все колонки.
Python, Django, DRF, django-filter
- Клонировать репозиторий и перейти в него в командной строке:
- Установите и активируйте виртуальное окружение:
Для пользователей Windows:
python -m venv venv
source venv/Scripts/activate
python -m pip install --upgrade pip
- Установите зависимости из файла requirements.txt
pip install -r requirements.txt
- Перейдите в каталог с файлом manage.py выполните команды: Выполнить миграции:
python manage.py migrate
Заполнить бд данными:
python manage.py load_data
Запуск проекта:
python manage.py runserver
В данном проекте использовано LimitOffsetPagination, по умолчанию на 100 записей. Для изминения перейдите в settings.py
Dataset: https://gist.github.com/artrey/8d6a3f2d91cefb5e6343bedbc9ef8c79
- Показать сырые данные вида
Date - Visitors - Earnings
api/v1/metrics/?show=date&show=visitors&show=earnings
- Показать сырые данные вида
Date - Country - Visitors - Earnings
за промежуток с 2021-03-20 по 2021-06-01
api/v1/metrics/?show=date&show=country&show=visitors&show=earnings&date_from=2021-03-20&date_to=2021-06-01
- Показать сгруппированные данные по странам, при этом отобразить
Earnings
и упорядочить по убыванию поEarnings
api/v1/metrics/?group=country&show=earnings&o=-earnings
- Показать сгруппированные данные по магазинам и странам и при этом отобразить
Visitors
api/v1/metrics/?group=country&group=shop&show=visitors