Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Погодное приложение (WeatherProject)

Это Django-приложение позволяет пользователю вводить название города и просматривать текущую погоду для этого города, используя API OpenWeatherMap.

Особенности

  • Ввод названия города через веб-форму.
  • Отображение температуры и иконки погоды.
  • Хранение в базе данных только последнего введённого города.
  • Обработка ошибок API (таймаут, неправильный формат ответа).
  • Тесты для основных функций представления.
  • Использование Bootstrap для стилизации интерфейса.

Технологии

  • Python 3.x
  • Django 5.2.7
  • OpenWeatherMap API (для получения данных о погоде)
  • requests (для HTTP-запросов к API)
  • SQLite3 (встроенная база данных)
  • Bootstrap 5.3.3 (CSS-фреймворк)

Установка и запуск

  1. Клонируйте репозиторий (если он у вас есть) или создайте локальный каталог для проекта.
  2. Создайте и активируйте виртуальное окружение (рекомендуется):
    python -m venv venv
    # На Windows:
    venv\Scripts\activate
    # На macOS/Linux:
    # source venv/bin/activate
  3. Установите зависимости:
    pip install django requests
    (В вашем проекте зависимости, вероятно, перечислены в файле requirements.txt. Если он есть, используйте pip install -r requirements.txt)
  4. Выполните миграции базы данных:
    python manage.py migrate
    Эта команда создаст необходимые таблицы в базе данных (включая таблицу для модели City).
  5. Запустите development-сервер:
    python manage.py runserver
  6. Откройте браузер и перейдите по адресу:
    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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages