- Познакомиться c моделью MVC, ее сущностью и основными фреймворками на ее основе.
- Разобраться с сущностями «модель», «контроллер», «представление», их функциональным назначением.
- Получить навыки разработки веб-приложений с использованием MVC-фреймворков.
- Выберите для Вашего проекта тип лицензии и добавьте файл с лицензией в проект.
- Доработайте проект магазина, добавив в него новую функциональность и информацию в базу данных в соответствии с типом магазина (согласно индивидуальному варианту, см. таблицу). Составьте модульные тесты к проекту, постарайтесь покрыть тестами максимально возможный объем кода. Для работы с этим заданием создайте новую ветку кода на основе главной и фиксируйте в нее весь программный код в процессе разработки. Добейтесь выполнения всех тестов проекта, после чего объедините текущую ветку кода с главной.
- Проанализируйте полученные результаты и сделайте выводы.
Проект представляет собой веб-приложение для интернет-магазина, где пользователи могут просматривать товары и совершать покупки с возможностью накопительной скидки. Приложение построено с использованием MVT (Model-View-Template) архитектуры, типичной для Django, которая позволяет отделить бизнес-логику от пользовательского интерфейса и обеспечивать эффективное управление данными.
**Тип магазина:** Магазин товаров для быта
**Функциональность приложения:** Магазин должен вести учет покупателей и делать накопительную скидку. Величина скидки зависит от количества покупок любых товаров.Было разработано:
- 3 модели:
Customer – модель для хранения информации о пользователе (имя, электронная почта, количество покупок).
Product – модель для представления информации о товаре (название, цена).
Purchase – модель для записи информации о каждой покупке (товар, покупатель, дата, адрес и итоговая цена с учетом скидки).
- 1 контроллер:
PurchaseController – основной контроллер для обработки логики покупок, накопительных скидок и формирования чека.
- 6 представлений:
index – отображает главную страницу с приветствием и списком доступных товаров.
product_detail – отображает детальную информацию о товаре.
purchase_form – выводит форму для ввода данных о покупке (имя покупателя, адрес).
purchase_create – обрабатывает отправку формы и создает новую запись о покупке.
receipt – выводит чек с информацией о покупке, включая скидку и итоговую стоимость.
customer_purchases – показывает историю покупок конкретного пользователя с информацией о скидках.
Языки: Python3.8, HTML, Tailwind CSS
Фреймворки: Django
Базы данных: PostgreSQL
Было разработано веб-приложение согласно индивидуальному заданию, протестировано разработанное веб-приложение, проблем выявено не было.
В процессе данной разработки я познакомился с:
- Моделью MVT, ее сущностью и основными фреймворками на ее основе.
- Сущностями «модель», «контроллер», «представление», их функциональным назначением в модели MVC.
Также я получил:
- Навыки разработки веб-приложений с использованием MVC-фреймворков.
Цели:
- Изучение модульного тестирования приложений.
- Написание юнит-тестов к проекту, разработанному в рамках лабораторной работы № 2.
Разработанное веб-приложение позволяет осуществлять модульное тестирование методов контроллера(т.к. логика работы приложения содержится в нем) проекта лабораторной работы № 2.
Было разработано:
- Product: проверка типов и значений полей.
- Customer: проверка типов и значений полей, таких как
name
,email
, иtotal_purchases
. - Purchase: проверка правильного заполнения поля
date
и корректности расчета скидки.
- IndexViewTests: проверка кода состояния, корректности шаблона и контекста главной страницы.
- PurchaseCreateViewTests:
- GET-запрос: проверка отображения формы покупки и правильной передачи контекста.
- POST-запрос: проверка создания новой покупки, применения скидки, отображения данных в чеке, обновления информации о покупателе и записи данных в базу.
Язык проекта - Python
Технологии - Django Test FrameworkБыло разработано веб-приложение осуществляющее модульное тестирование методов. Этот проект демонстрирует основы создания веб-приложений на Django с применением модели MVT. Реализованы базовые функции интернет-магазина, включая учет товаров, клиентов и заказов, с накопительной системой скидок. Тесты обеспечивают корректную работу основных функциональностей.контроллер проекта лабораторной работы № 2. Все тесты были успешно пройдены. В процессе данной разработки я изучил процесс модульного тестирования приложений.