Прогноз погоды через API https://open-meteo.com/
Web-приложение, которое позволяет пользователю вводить название города,
и получать прогноз погоды в этом городе на ближайшее время.
Приложение написано с использованием фреймворка Django
.
• Ввод пользователем названия города. Определение координат по названию города.
• Вывод прогноза погоды для заданного города с помощью API https://open-meteo.com/.
• Написано несколько тестов для приложения meteo_app
.
• Приложение помещено в Docker-контейнер.
• Сделано автодополнение (подсказки) при вводе города. Реализовано через запрос от фронтенда к базе данных,
читается таблица ранее использованных городов, бэкенд формирует список значений и передает
в фронтенд, где этот список используется при вводе символов в поле ввода города.
• При повторном посещении сайта будет предложено посмотреть погоду в городе, в котором пользователь уже смотрел ранее.
• Сохранение истории поиска для каждого пользователя в БД PostgreSQL
.
• Создано API приложение stat_api_app
, показывающее сколько раз вводили какой город.
Результат доступен по относительной ссылке: /api/stat_api_app/stats/
.
Статистика формируется в процессе обращения пользователей и ведется в отдельной таблице БД PostgreSQL
.
• Регистрация / вход / выход пользователей.
• Сохранение пользовательских предпочтений в БД PostgreSQL
:
светлая / темная тема интерфейса, последний введенный город.
• Вывод статистики по пользователям. Доступ к данной странице имеет только суперпользователь.
Доступна только суперпользователям
показывает сколько раз вводили какой городй
- Выполните команду для клонирования:
git clone https://github.com/Topotun77/weather_meteo
- Установите все необходимые зависимости, выполнив команду:
pip install -r requirements.txt
-
В беде данных
PostgreSQL
создайте базуmeteo_db
. -
Перейдите в каталог приложения, создайте суперпользователя, произведите все необходимые миграции:
cd .\meteo_wt\
python manage.py createsuperuser
python manage.py makemigrations
python manage.py migrate
- Для локального запуска:
- перейдите в каталог
meteo_wt
, команда:
cd .\meteo_wt\
- запустите код с помощью команды:
python manage.py runserver
- Для запуска на сервере используйте команду:
cd meteo_wt && gunicorn meteo_wt.wsgi:application --bind 0.0.0.0:80
- Либо запустить приложение вместе с базой данных PostgreSQL через Dockerfile и docker-compose .