Скриншот архива с проектом

Структура проекта

Задание
Описание задачи
Разработать систему для покупки билетов на самолет, удовлетворяющую следующим требованиям:
- Программа хранит информацию о пассажирах, рейсах и расписаниях рейсов.
- Приложение позволяет добавлять, редактировать и удалять информацию о пассажирах и расписаниях рейсов.
- Пассажиры имеют следующие характеристики: Фамилия, Имя, Отчество, Паспортные данные (серия и номер), День рождения.
- Атрибуты рейсов: Пункт отправления, Пункт прибытия, Общее количество мест, Продолжительность полета.
- Характеристики расписаний рейсов: Название рейса, Количество свободных мест, Время отправления, Время прибытия.
Программа должна быть разработана на языке 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 ставим галочки во всех чекбоксах. Приятного пользования приложением.
Телеграм
-