Тёмный

SQLAlchemy: Advanced RELATIONSHIPS | Indexes | Constraints #10 

Артём Шумейко
Подписаться 28 тыс.
Просмотров 8 тыс.
50% 1

💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡
Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47
Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot
Все вопросы по SQLAlchemy обсуждаем в телеграм сообществе: t.me/python_community_rus
Мой телеграм канал о жизни разработчика: t.me/artemshumeiko
Полезные материалы для бэкендера в моем телеграм боте: t.me/ArtemShumeikoBot?start=eXQ
Репозиторий на Github с кодом из видео: t.me/artemshumeiko/28
Поддержать меня и получить ранний доступ к видео можно здесь: boosty.to/artemshumeiko
Relationships - это основа ORM в Алхимии, которую должен знать каждый бэкендер.
0:00 - back_populates
2:15 - backref
3:12 - primaryjoin (измененный join)
9:12 - order_by (сортировка)
9:55 - lazy (типы подгрузки)
11:12 - contains_eager
15:55 - Ограничение подгружаемых связей
18:18 - Индексы и ограничения

Опубликовано:

 

19 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 27   
@artemshumeiko
@artemshumeiko 7 месяцев назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gwP 💡 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot
@user-mz2hi1rg9b
@user-mz2hi1rg9b 7 месяцев назад
Лайк не глядя.Тема очень актуальная и не раскрытая нигде нормально.Спасибо тебе большое )
@nateriver8261
@nateriver8261 7 месяцев назад
Спасибо большое!
@user-je6dz7vz4y
@user-je6dz7vz4y 7 месяцев назад
Как всегда на высоте. Как Прометей, только несешь алхимию людям 😁.
@artemshumeiko
@artemshumeiko 7 месяцев назад
спасибо!
@daark0407
@daark0407 6 месяцев назад
Артем, а вы не планируете в будущем снять видео по ddd архитектуре? я думаю, что это был бы очень полезный ролик.
@evakuator8118
@evakuator8118 7 месяцев назад
Круто!
@artemshumeiko
@artemshumeiko 7 месяцев назад
спасибо!)
@user-zl5sp9yh1n
@user-zl5sp9yh1n Месяц назад
Я правильно понимаю что в нашем ограничении подгружаемых записей на каждого воркера делается еще один подзапрос в бд чтобы вычленить первое резюме по критериям?
@user-ll2ev4zg7z
@user-ll2ev4zg7z 6 месяцев назад
Артём, а это какой-то плагин дает такие подсказки по сигнатуре объекта при наведении мышки на него или VSC по-умолчанию?
@artemshumeiko
@artemshumeiko 6 месяцев назад
по умолчанию в VSCode. Нужно только, чтобы работа велась в виртуальном окружении
@AS-fk5fw
@AS-fk5fw 7 месяцев назад
за contains_eager большой респект 👍 неправильно понимал как работает этот метод
@artemshumeiko
@artemshumeiko 7 месяцев назад
рад, что помог вам :)
@ellovich
@ellovich 5 месяцев назад
Артем, запишите пожалуйста про бинарный Json (JSONB) в sqlalchemy
@user-un2wj7si9j
@user-un2wj7si9j 2 месяца назад
В WorkersORM у resumes в relationship(back_populates="worker") указание на worker. В свою очередь, в ResumesORM у worker в relationship(back_populates="resumes") идет указание на resumes, и у нас не возникает в терминале предупреждения от Алхимии. Но когда мы в WorkersORM добавляем дополнительно resumes_parttime c back_populates="worker", предупреждение в терминале снова появляется. Что делать в таком случае? Ведь в back_populates нельзя указать resumes и resumes_parttime через запятую.
@captainkryuk1899
@captainkryuk1899 2 месяца назад
наверное уже поздно, но просто в дочернем классе укажи еще одно отношение с back_populates="resumes_parttime"
@Guiscardqq
@Guiscardqq 7 месяцев назад
8:01 если нужно указать несколько options, то их можно в один пихать через запятую
@VladyslavKoshyl
@VladyslavKoshyl 6 месяцев назад
Привет, есть вопрос касаемо relationship между моделями из разных директорий. Как правильно задавать путь в таком случае? Например, creator: Mapped["src.auth.models.User"] = relationship("User", back_populates="created_rooms") created_rooms: Mapped[List["src.rooms.models.Room"]] = relationship("Room", back_populates="creator") я задаю две строки(+ForeignKey для one to many), но python почему-то ругается на то что "src" is not defined, пробую изменить директорию ещё на одну выше, всё так же, как мне с этим справиться? Пробовал делать также импорт каждого класса в папку, но получил ошибку circular import( заранее спасибо за все!
@artemshumeiko
@artemshumeiko 6 месяцев назад
просто creator: Mapped["User"]
@user-rs7qb9yp9z
@user-rs7qb9yp9z 3 месяца назад
@@artemshumeiko orders: Mapped[list["Orders"]] = relationship(back_populates='users') при таком построении он хочет импорта модели Orders, но тогда будут циклические импорты
@maisiq
@maisiq 6 месяцев назад
В примерах между selectinload и contains_eager разница в результатах в том, что последний использует filter, а не в том, как они работают. Полагаю, что вы хотели показать, что если использовать filter + contains_eager, то выберутся то те worker'ы, у которых есть конкретные резюме (опять же, из-за фильтра), но contains_eager подгрузит в коллекцию worker'у не все резюме, а только те, что удовлятворяют условиям фильтра. [contains_eager + filter] В результате worker.resumes = [только с parttime] [selectinload + filter] В результате worker.resumes = [все резюме] Раздел в документации: Using contains_eager() to load a custom-filtered collection result Спасибо за курс). Сколько еще планируется уроков?
@artemshumeiko
@artemshumeiko 6 месяцев назад
Вы все верно написали. Возможно, я не так выразился в видео. В курсе всего 13 уроков. Последний по Алембику выйдет в течение пары недель
@georgiyveter6391
@georgiyveter6391 7 месяцев назад
Кто может подсказать, как для Sqlite сделать, чтобы в числовое поле по умолчанию при вставке в БД поставлялось максимальное значение + 1? Например, я добавляю две записи, идёт постановка 1, 2. Потом я в третьей записи задаю сам это поле как 10. А потом в следующей автоматчики уже подставляется 11
@sxmrxk
@sxmrxk 7 месяцев назад
CREATE TABLE ваша_таблица ( ваше_числовое_поле INTEGER PRIMARY KEY AUTOINCREMENT, другие_поля TEXT );
@georgiyveter6391
@georgiyveter6391 7 месяцев назад
@@sxmrxk нет, нужен не первичный ключ
Далее
SQLAlchemy: Intro to relationships and ORM #9
20:09
Просмотров 11 тыс.
Incredible Wheel Restoration Process 🚙
01:00
Просмотров 1,7 млн
ЛИПЕР ДЛЯ ТЕЛЕФОНА 🤯
00:59
Просмотров 604 тыс.
When Steve Wants To Measure The Dog'S Height 😂️
00:19
Solving one of PostgreSQL's biggest weaknesses.
17:12
Просмотров 174 тыс.
Базы данных. MySQL. Индексы
31:10
Просмотров 65 тыс.
Incredible Wheel Restoration Process 🚙
01:00
Просмотров 1,7 млн