Привет всем! Хочу поделиться своим опытом создания небольшого, но успешно работающего сайта о погоде на Python. Пусть он и не претендует на звание лидера, для меня это ценный проект, в который я вложил много времени и усилий, а главное - приносящий пользу пользователям. Посмотреть его можно здесь:
pogoda-free.ru
Зачем создавать еще один сайт о погоде?
Вы можете спросить, зачем нужен еще один сайт с прогнозами, когда их и так предостаточно? У меня было несколько причин:
• Развитие навыков: Это был отличный шанс углубить знания в Python, фреймворке Django и веб-разработке в целом.
• Персонализированный подход: Я стремился создать ресурс, который бы соответствовал моим требованиям и включал функции, которые мне были необходимы, но отсутствовали в других сервисах.
• Личный интерес: Мне просто хотелось проверить свои силы и узнать, смогу ли я это реализовать!
Использованные технологии:
• Python: Основной язык программирования. Я выбрал его за простоту, гибкость и обширную экосистему библиотек.
• Django: Высокоуровневый Python-фреймворк для веб-разработки. Он значительно ускорил разработку и помог организовать структуру проекта.
• OpenWeather API: Надёжный источник метеорологических данных, предоставляющий бесплатный доступ (с ограничениями).
• IPinfo API: API для автоматического определения местоположения посетителя сайта по IP-адресу. Предоставляет 50 000 бесплатных запросов в месяц.
• HTML, CSS и JavaScript: Без них никуда! Использовались для создания пользовательского интерфейса. (Признаюсь, что в создании шаблона страницы мне помогал чат от OpenAI. Чтобы получить доступ без ограничений, пользовался VPN для захода на официальный сайт).
• PostgreSQL: Надежная и масштабируемая система управления базами данных (СУБД) для хранения информации о погоде. На этапе разработки использовал SQLite, но для рабочей версии сайта он не подходит.
• Gunicorn и Nginx: Эти инструменты были использованы для развертывания и обеспечения стабильной работы веб-сайта. Nginx также используется для определения IP-адреса пользователя.
Прежде чем приступить к написанию кода, я определил основные функции, которые должен выполнять сайт:
• Текущая погода: Отображение основных параметров, таких как температура, осадки, влажность, скорость ветра и ощущаемая температура.
• Автоматическое определение местоположения: Автоматическое определение города пользователя для отображения актуальной погоды.
• Прогноз на несколько дней: Предоставление прогноза на ближайшие дни для планирования.
• Поиск по городам: Возможность поиска погоды в любом городе мира.
• Удобный пользовательский интерфейс: Простота и удобство использования сайта.
В будущем планирую добавить функцию, рекомендующую подходящую одежду на основе текущей погоды (температуры, ветра и т.д.). Это можно реализовать с использованием API Chat.
На данный момент посещаемость сайта 100+ человек в день
Вот как выглядит мой сайт с мобилки в дневное время и ночное время: