Скриншот архива с проектом
Структура проекта
Задание
Описание задачи
Разработать систему для покупки билетов на самолет, удовлетворяющую следующим требованиям:
- Программа хранит информацию о пассажирах, рейсах и расписаниях рейсов.
- Приложение позволяет добавлять, редактировать и удалять информацию о пассажирах и расписаниях рейсов.
- Пассажиры имеют следующие характеристики: Фамилия, Имя, Отчество, Паспортные данные (серия и номер), День рождения.
- Атрибуты рейсов: Пункт отправления, Пункт прибытия, Общее количество мест, Продолжительность полета.
- Характеристики расписаний рейсов: Название рейса, Количество свободных мест, Время отправления, Время прибытия.
Программа должна быть разработана на языке Python и фреймворке Django с подключением стилей css.
Функционал программы
- Управление рейсами
- Управление расписанием
- Управление пассажирами
Фрагмент программного кода
from django.db import models # Create your models here. class Flight(models.Model): objects = models.Manager() start_point = models.CharField(max_length=100, verbose_name='Пункт отправления') end_point = models.CharField(max_length=100, verbose_name='Пункт прибытия') total_places = models.IntegerField(verbose_name="Общее количество мест") duration_time = models.CharField(max_length=50, verbose_name="Продолжительность полета") class Meta: verbose_name = 'Рейс' verbose_name_plural = 'Рейсы' def __str__(self): return f"{self.start_point} - {self.end_point}" class Schedule(models.Model): objects = models.Manager() flight = models.ForeignKey(Flight, on_delete=models.CASCADE, verbose_name='Название рейса') # Связь с моделью Flight start_time = models.DateTimeField(verbose_name='Время отправления') # Время отправления end_time = models.DateTimeField(verbose_name='Время прибытия') # Время прибытия places_available = models.PositiveIntegerField(verbose_name='Количество свободных мест') # Количество свободных мест class Meta: verbose_name = 'Расписание' verbose_name_plural = 'Расписания' def __str__(self): return f"{self.flight}" class Passenger(models.Model): objects = models.Manager() last_name = models.CharField(max_length=100, verbose_name='Фамилия') # Фамилия first_name = models.CharField(max_length=100, verbose_name='Имя') # Имя surname = models.CharField(max_length=100, verbose_name='Отчество') # Отчество passport = models.CharField(max_length=20, verbose_name='Паспортные данные') # Паспортные данные birth_date = models.DateField(verbose_name='Дата рождения') # День рождения photo = models.ImageField(upload_to='images', help_text="Введите фото", verbose_name="Фото пассажира", null=True, blank=True) schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE, related_name='flights', verbose_name='Рейс') # Связь с расписанием class Meta: verbose_name = 'Пассажир' verbose_name_plural = 'Пассажиры' def __str__(self): return f"{self.last_name} {self.first_name} - {self.schedule}"
Пояснения по запуску программы
Смотри Инструкция.docx. В инструкции подробно, по шагам расписал весь порядок действий. Будьте внимательны при выполнении данных действий. Еще раз напоминаю, что при установке Python необходимо поставить галочку в чекбокс PATH. При установке PyCharm ставим галочки во всех чекбоксах. Приятного пользования приложением.
admin