Skip to content

SoldierID101/PTLab2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Лабораторная 2 по дисциплине "Технологии программирования"

Цель работы

  • Познакомиться с моделью MVC и её реализацией во фреймворке Django.
  • Разобраться с сущностями «модель», «контроллер», «представление».
  • Получить навыки разработки веб-приложений с использованием Django.
  • Освоить написание модульных тестов.
  • Выполнить индивидуальное задание по варианту.

Постановка задачи

Базовый учебный проект представляет собой интернет-магазин, реализованный с помощью Django и базы данных PostgreSQL.

Индивидуальное задание (вариант 8 — Магазин электроники)

В магазине имеется определённое количество товара каждого вида.
После продажи каждых 10 экземпляров любого товара его цена возрастает на 15%.

Функциональность реализована через расширение модели Product:

  • добавлены поля sold_count и initial_quantity;
  • метод sell() автоматически уменьшает остатки, увеличивает счётчик продаж и повышает цену при достижении порога (10, 20, 30 … продаж).

Используемые технологии

  • Python 3.8
  • Django 4.2
  • PostgreSQL
  • psycopg (драйвер для PostgreSQL)
  • Unittest (модульные тесты)

Развёртывание проекта

  1. Клонировать репозиторий:
    git clone https://github.com/<ваш_логин>/PTLab2.git
    cd PTLab2
  2. Создать базу данных PostgreSQL:
    CREATE DATABASE django_db OWNER postgres;
  3. Установить переменную окружения с паролем PostgreSQL (пример для PowerShell):
    $env:DATABASE_PASSWORD = "ps_password"
  4. Создать и активировать виртуальное окружение:
    conda create -n tplab2-env python=3.8
    conda activate tplab2-env
  5. Установить зависимости:
    pip install -r requirements.txt
  6. Выполнить миграции и загрузить данные:
    python manage.py migrate
    python manage.py loaddata products.yaml
  7. Запустить сервер:
    python manage.py runserver
    Перейти в браузере по адресу: http://127.0.0.1:8000

Тестирование

Запуск всех тестов:

python manage.py test shop/tests/

Результат: 7 тестов — все проходят успешно.
Тесты проверяют:

  • корректность типов данных в модели,
  • уменьшение количества товара при покупке,
  • рост цены на 15% после каждой 10-й продажи,
  • мультипликативное повышение цены при пересечении нескольких порогов за одну покупку.

Результаты

  • Изучена модель MVC на примере Django.
  • Развёрнут базовый учебный проект интернет-магазина.
  • Реализована дополнительная функциональность по индивидуальному заданию.
  • Все тесты успешно пройдены.

License

Проект распространяется по лицензии (LICENSE).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 87.0%
  • HTML 12.8%
  • Procfile 0.2%