ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:00:00
Создание базы данных и моделей:
  • 1. Решено создать модель базы данных с сущностями пользователей, отелей, комнат и бронирования, сначала ограничившись созданием желаемых моделей
  • 2. Созданный код разместят рядом с файлами базы данных и точки входа FastAPI (main.py)
  • 3. Обсуждалось удобство хранения различных сущностей отдельно друг от друга для лучшей структурированности проекта
00:01:01
Разработка структуры моделей и сущностей:
  • Создана папка `хотелс` в папке апп для хранения моделей, схем и файлов с данными
  • Разработана модель таблицы `хотелс`, указаны столбцы (id, локация, картинки, количество комнат, сервисы), заданы типы данных и ограничения
  • Указан первичный ключ (`id`) и настроено автоинкрементирование значений
0: Итак, давайте создадим нашу 1 модель, которую мы затем через миграции переместим из python. В базу данных давайте посмотрим на нашу схему данных. Выглядит она примерно так. У нас есть юзеры, у нас есть отели.
1: Комнаты и бронирование. Давайте пока не будем создавать прям всю, всю базу данных. Это довольно долго. Давайте создадим только хотелс, чтобы понимать, как создаются модели. Давайте где-нибудь здесь сбоку расположим это и здесь.
2: Положим наш вес код вот так это дело сделаем и вот так. Смотрите, у нас есть 2 файла уже data base он работает с базой данных у нас есть мейн пай, это точка входа для фастапи у нас.
3: Также будут отели, комнаты, юзеры. Ну, это разные сущности, они хоть и взаимосвязаны иногда и там работают в связке. Тем не менее, было бы удобно их хранить в разных местах, чтобы понимать, что вот здесь все
4: Связано с отелями. Здесь все связано с бронированиями, здесь с юзерами и так далее. Для этого давайте в Папке апп создадим папку с названием хотелс. Здесь будут храниться модели эскью алхимии, пайдентик, схемы для валидации данных. Также
5: Эндпоинты, например, на получение всех отелей, на поиск отелей, на получение конкретного отеля, на получение комнат этого отеля. Пока нам нужен только файл с моделями. Давайте сделаем его. Итак, давайте.
6: Импортируем сперва Бейс как я говорил, от него нужно будет наследоваться напишем фроб эп точка data base, import base и теперь нам нужно создать модель таблицы таблица будет называться хотелс и мы.
7: Наследуемся от base, после чего? Да, это все манипуляции с bass, после чего в bass будет храниться данные, что у нас есть такая модель на бэкенде. Нам нужно, конечно же, задать название нашей таблицы table name пускай будет хотелс.
8: И задать все столбцы. Давайте их напишем просто вот так, сначала, без указания каждого, без того, какой тип у него, и посмотрим сначала, какие типы им указать, как это сделать.
9: И за что каждый столбец отвечает давайте через alt зажатый выделим все это дело нажмём равно. И теперь нам нужно указать, что это все столбцы, столбцы, это колом с большой буквы, такой класс, и мы его импортируем из вот здесь.
10: Можно навести быстрое исправление из эскью алхимии. Окей, теперь нам нужно указать типы. Давайте посмотрим айди. Это у нас integer. Соответственно, мы пишем с большой буквы интеджер. Я нажимаю ctrl u и
11: Мне подсказывает, откуда можно импортировать из эск алхимии. Давайте сначала укажем типы для всего варчар. Это у нас называется string на языке алхимии локейшн, это тоже string сервисес, это json, если вы проф.
12: В базах данных и сомневаюсь, что здесь нужен json давайте подискутируем об этом мне кажется, что все-таки это будет удобно, да, сразу скажу, что services сервисес это у нас какие-то услуги, которые актуальны для всех.
13: Посетителей отеля, это там бассейн это, не знаю, шведский стол, бесплатный wi fi ещё там, не знаю, вид на море или что-то подобное. Также у нас есть количество комнат, это integer и последнее это id.
14: Картинки если мы на фронтенде хотим показывать отель, информацию о нём и также картинку его, то нам нужно понимать, какую картинку отображать нейм это название отеля там bridge resort 5 звёзд здесь, конечно, нету звёзд, здесь много каких параметров нету, но тем не менее.
15: Пока мы ограничимся вот этими, локация это где находится просто адрес сервиса сказал и все остальное тоже сказал. Теперь давайте укажем первичный ключ. Обязательно. Id это у нас первичный ключ, он будет всегда у них
16: И это будет автогенерируют яся последовательность целых чисел. Да, мы добавим 1 строчку id будет 1. Мы добавим 2 строчку, для неё id будет 2. И также, что важно, давайте везде укажем. Ну вот здесь
17: Через alt зажатый также я делаю параметр, что эти столбцы не могут быть пустыми, они обязательно должны быть заполнены. За это отвечает нулабл равно false ну разве что пускай сервисы будут тоже пустыми вдруг нам не передали информацию об
18: Сервисах или их просто нет. Вот так мы сделали, проверяем, все ли правильно. Да, пока все в целом правильно, мы с этой, этой таблицей не ссылаемся ни на что. Поэтому здесь никаких связей, внешних ключей нету. И так
19: Таким образом мы создали модель дальше с ней можно будет работать можно будет делать какие-то select да, запросы на выборку запросы на обновление данных на добавление данных и мы посмотрим это уже в будущих уроках сейчас нам интересно как эту модель.