Это Django-приложение позволяет пользователю вводить название города и просматривать текущую погоду для этого города, используя API OpenWeatherMap.
- Ввод названия города через веб-форму.
- Отображение температуры и иконки погоды.
- Хранение в базе данных только последнего введённого города.
- Обработка ошибок API (таймаут, неправильный формат ответа).
- Тесты для основных функций представления.
- Использование Bootstrap для стилизации интерфейса.
- Python 3.x
- Django 5.2.7
- OpenWeatherMap API (для получения данных о погоде)
- requests (для HTTP-запросов к API)
- SQLite3 (встроенная база данных)
- Bootstrap 5.3.3 (CSS-фреймворк)
- Клонируйте репозиторий (если он у вас есть) или создайте локальный каталог для проекта.
- Создайте и активируйте виртуальное окружение (рекомендуется):
python -m venv venv # На Windows: venv\Scripts\activate # На macOS/Linux: # source venv/bin/activate
- Установите зависимости:
(В вашем проекте зависимости, вероятно, перечислены в файле
pip install django requests
requirements.txt. Если он есть, используйтеpip install -r requirements.txt) - Выполните миграции базы данных:
Эта команда создаст необходимые таблицы в базе данных (включая таблицу для модели
python manage.py migrate
City). - Запустите development-сервер:
python manage.py runserver
- Откройте браузер и перейдите по адресу:
http://127.0.0.1:8000/
WeatherProject/: Основной пакет проекта Django (содержитsettings.py,urls.py,wsgi.py,asgi.py).posts/: Приложение Django, реализующее функциональность погоды.views.py: Функцияindexобрабатывает запросы и взаимодействует с API.models.py: МодельCityдля хранения названия города.forms.py: ФормаCityFormдля ввода названия города.urls.py: URL-маршруты для приложенияposts.admin.py: Регистрация моделиCityв админке.apps.py: Конфигурация приложенияposts.tests.py: Тесты для представленияindex.templates/weather/index.html: HTML-шаблон главной страницы.
manage.py: Утилита командной строки Django.db.sqlite3: Файл базы данных SQLite.README.md: Этот файл.
- API-ключ OpenWeatherMap: В коде (
views.py) жёстко задан API-ключ. Для продакшена рекомендуется хранить его в переменных окружения или в файле настроек, недоступном из репозитория.# Пример получения из переменной окружения import os appid = os.environ.get('OPENWEATHER_API_KEY', 'f3ef80bd960f4b7d87fa319f1f13bf51')
- DEBUG-режим: В
settings.pyустановленоDEBUG = True. Это должно быть отключено (DEBUG = False) в продакшен-окружении.
Для запуска тестов, созданных в posts/tests.py, выполните команду в терминале из корня проекта:
python manage.py test