Добавить в корзинуПозвонить
Найти в Дзене

Интеграция прогноза погоды через API в ваши проекты

ВЕСЬ ИСХОДНЫЙ КОД С ИЗОБРАЖЕНИЯМИ НАХОДИТЬСЯ В МОЕМ : GitHub: ОТКРЫТЬ РЕПОЗИТОРИЙ В моей учебной и профессиональной деятельности часто приходиться работать с интеграцией различных сервисов через API, совсем недавно мне было необходимо поместить в свой Python - проект данные о погодных условиях в определенной местности. Не легкой, потому что я не знал , а какими БЕСПЛАТНЫМИ, доступными сервисами мне воспользоваться, к тому же которые доступны в России на данный момент. И под руки мне попалась - OpenWeatherMap.org и ее легкая, быстрая интеграция в мои проекты. Я подготовил подробное пошаговое руководство по использованию OpenWeather API с помощью Python для получения текущей погоды, прогноза и карт осадков в личных целях. Включу инструкции по регистрации, получению API-ключа, работе с запросами, примеры кода и объяснение возвращаемых данных. Я сообщу, когда всё будет готово. API - это набор правил и протоколов, который позволяет разным программам, приложениям и сервисам взаимодействов
Оглавление

ВЕСЬ ИСХОДНЫЙ КОД С ИЗОБРАЖЕНИЯМИ НАХОДИТЬСЯ В МОЕМ :

GitHub: ОТКРЫТЬ РЕПОЗИТОРИЙ

В моей учебной и профессиональной деятельности часто приходиться работать с интеграцией различных сервисов через API, совсем недавно мне было необходимо поместить в свой Python - проект данные о погодных условиях в определенной местности.

Не легкой, потому что я не знал , а какими БЕСПЛАТНЫМИ, доступными сервисами мне воспользоваться, к тому же которые доступны в России на данный момент. И под руки мне попалась - OpenWeatherMap.org и ее легкая, быстрая интеграция в мои проекты.

Я подготовил подробное пошаговое руководство по использованию OpenWeather API с помощью Python для получения текущей погоды, прогноза и карт осадков в личных целях. Включу инструкции по регистрации, получению API-ключа, работе с запросами, примеры кода и объяснение возвращаемых данных.

Я сообщу, когда всё будет готово.

API - это набор правил и протоколов, который позволяет разным программам, приложениям и сервисам взаимодействовать и обмениваться данными друг с другом.

OpenWeatherMap.org - это передовой API для прогнозов погоды и геолокации, которому доверяют более 750 000 пользователей по всему миру.

1. Перейдите на сайт OpenWeatherMap

Перейдите по ссылке "OpenWeatherMap.org".

1. Официальный сайт OpenWeatherMap.org
1. Официальный сайт OpenWeatherMap.org

2. Зарегистрируйтесь (Sign up)

Нажмите на кнопку 'Sign Up'. Заполните поля для регистрации : почту, пароль, пройдите капчу, примите соглашение (галочка) и снова кнопку -> 'Sign Up'.

На вашу почту придет сообщение, которое нужно подтвердить.

2. Страница регистрации
2. Страница регистрации

3. Перейдите в раздел -> My API Keys

В личном кабинете (Account) на вкладке API Keys скопируйте полученный ключ (App ID)- (напр. 6d8e495ca73d...). Этот ключ нам позже понадобится.

-3

4. Установка необходимых библиотек в Python

Для работы с веб-запросами в Python установите библиотеку requests.

В терминале/командной строке введите:

pip install requests

Если вы планируете визуализировать карты, дополнительно установите библиотеки для рисования: например, folium и matplotlib:

pip install folium matplotlib

5. Получение текущей погоды через API

Теперь, когда у вас уже есть API-ключ, можно приступать к самому интересному — отправке запроса к сервису погоды.

OpenWeather предоставляет данные в формате JSON, и мы можем легко обработать их в Python.

Ниже простой пример, который получает текущую температуру, влажность, скорость ветра и описание погоды в выбранном городе:

-4

После запуска вы получите актуальную погоду, а формат JSON при необходимости можете сохранить в файл либо использовать в своём приложении.

Можно так-же получить подробный прогноз погоды на 5 дней вперед и множество других интересных приемов, но в данной статье хочу показать самое базовое использование данного ключа.

6. Реализация графического интерфейса в стиле смартфона через PyQt6

Когда все базовые механизмы API уже были проработаны, мне стало интересно вывести данные погоды не просто в консоль, а создать полноценный визуальный интерфейс — такой, который выглядел бы современно, аккуратно и максимально дружелюбно для пользователя.

Для этого я использовал библиотеку PyQt6 и решил стилизовать приложение под экран смартфона iPhone.

Ниже вы можете увидеть простой, базовый интерфейс написанный на PyQt6, код занимает мало строк и очень стильно смотрится.

Но все-же это смотрится не полноценно, очень много пустого места, которое ничем не заполнено и не использовано, я решил добавить иконки, которые в зависимости от погоды меняют свой тип.

Ниже вы можете увидеть реализацию моей идеи.

Текущая погода в СПБ, корректное отображение картинки при снеге.
Текущая погода в СПБ, корректное отображение картинки при снеге.
Погода в Москве.
Погода в Москве.

Такой подход оказались не только красивым, но и очень удобным: информация отображается компактно, но при этом наглядно и интуитивно.

После нажатия на кнопку «Погода» в центре экрана:

  • крупными цифрами показывается температура в выбранном городе,
  • ниже отображается краткое описание состояния: ясно, дождь, снег, пасмурно и т.д.,
  • над температурой автоматически появляется иконка погоды, соответствующая состоянию.

Например:

  • снег → snow.png
  • дождь → rain.png
  • ясно → sun.png
  • гроза → thunderstorm.png
  • облачно с прояснениями → partly cloudy.png
  • снег с дождём → snow and rain.svg

Иконки загружаются автоматически в зависимости от ответа API — тем самым интерфейс ощущается “живым”.

В результате мне удалось создать небольшое, но очень приятное мини-приложение: такое приложение отлично вписалось в мою статью, потому что демонстрирует практическое применение API и показывает, что с помощью Python и простых библиотек можно создавать настоящие интерфейсы уровня мобильных приложений.

ВЕСЬ ИСХОДНЫЙ КОД С ИЗОБРАЖЕНИЯМИ НАХОДИТЬСЯ В МОЕМ :

GitHub: ОТКРЫТЬ РЕПОЗИТОРИЙ

Спасибо за прочтение, надеюсь я вам помог, пишите комментарии и делитесь мнением.