SQLAlchemy: Intro to relationships and ORM #9

  Рет қаралды 14,651

Артём Шумейко

Артём Шумейко

Күн бұрын

Пікірлер: 33
@artemshumeiko
@artemshumeiko 11 ай бұрын
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gwP 💡 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot
@macro9844
@macro9844 10 ай бұрын
Спасибо за отличный материал. Посмотрев курс по алхимии, решил что запишусь к вам на обучение после завершения своего пет проекта))
@artemshumeiko
@artemshumeiko 10 ай бұрын
Спасибо! Впереди еще 4 видео по Алхимии ;)
@Pawokify
@Pawokify 3 ай бұрын
Спасибо Артем, много полезного даешь!
@AHTOHmaister
@AHTOHmaister 10 ай бұрын
Спасибо за видео!
@tur8008
@tur8008 10 ай бұрын
Спасибо за отличное видео, с удовольствием посмотрел. Вы сказали что relationship не стоит включать в вывод repr, однако в вашей имплементации метода я не вижу способа исключения таких полей. Как вы это решаете?
@artemshumeiko
@artemshumeiko 10 ай бұрын
цикл for проходится только по колонкам columns. Чтобы итерироваться по relationship'ам, нужен другой атрибут. Поэтому все нормально работает
@tur8008
@tur8008 10 ай бұрын
@@artemshumeiko понял, спасибо!
@АндрейЕлисеев-э6д
@АндрейЕлисеев-э6д 10 ай бұрын
Расскажите пожалуйста, как правильно (быстро) вставлять в БД связанные объекты (o2m) через ORM? С небольшим кол-вом проблем нет, а вот запись нескольких тысяч строк занимаем большое кол-во времени
@МишаЧернов-э9х
@МишаЧернов-э9х 8 ай бұрын
Привет. Очень хорошее видео, спасибо. У меня такой вопрос - результат выводится в качестве списка, каждый элемент которого находится в круглых скобках, то есть отдельные строки отделены друг от друга. Как сделать вывод ез скобок, как в видео? Надеюсь понятно написал)
@misterbobrust
@misterbobrust 6 ай бұрын
Привет, а если у меня несколько таблиц которые нужно подгрузить с помощью selectinload или joinedload? Я видел способ, там нужно каждый раз указывать options и в нём каждый раз по одному selectinload, мне кажется это неудобно
@artemshumeiko
@artemshumeiko 6 ай бұрын
можно изначально для relationship указать вид подгрузки, например, lazy="selectin", но так не рекомендуется делать, потому что в одном месте кода вам нужна будет selectin подгрузка, а в другом - нет, но она будет срабатывать и тормозить исполнение кода обычно подгрузки явно указываются через options
@__ali__97
@__ali__97 2 ай бұрын
так как в итоге сделать асинхронную связь relationship?
@sxmrxk
@sxmrxk 10 ай бұрын
эх, надеялся что будет обьяснение как иерархично подгружать обьекты которые имеют ссылки сами на себя (например как комментарии в реддит)
@ggindinson
@ggindinson 10 ай бұрын
Привет! Очень годный контент. Заметил, что все модели пишешь в одном файле, а не разбиваешь. А как можно избежать круговой зависимости при создании Many To Many relationship, если каждая моделька выносится в отдельный файл?
@artemshumeiko
@artemshumeiko 10 ай бұрын
просто в кавычках указывать название модели внутри, вот так: Mapped["ModelName"]. Алхимия сама доимпортирует все при старте приложения
@ggindinson
@ggindinson 10 ай бұрын
@@artemshumeiko пробовал так делать, но она жалуется, сам не до конца понимаю почему. даже vscode в таком формате не видит ссылку на класс :(
@МаксимДроздов-н6ф
@МаксимДроздов-н6ф 4 ай бұрын
я может ошибаюсь, но one2many и many2one это же одно и то же? Типа есть автор, у него есть много книг - one2many. Точно также у многих книг может быть только 1 автор - many2one, от формулировки смысл то тот же
@artemshumeiko
@artemshumeiko 4 ай бұрын
да, одно и то же
@Александр-ъ3о1щ
@Александр-ъ3о1щ 10 ай бұрын
А когда будет про то как результат ответа от БД конвертировать в Pydantic модель ?
@kleizi
@kleizi 10 ай бұрын
ручками, лист компрехеншен в помощь
@tur8008
@tur8008 10 ай бұрын
В pydantic модели нужно и определить class Config: orm_mode=True Затем Model. from_orm(sql_alchemy_model)
@artemshumeiko
@artemshumeiko 10 ай бұрын
11 видео будет полностью посвящено этому выйдет через 2 недели
@Александр-ъ3о1щ
@Александр-ъ3о1щ 10 ай бұрын
@@artemshumeikoотлично! очень ждём
@hovharoyan3262
@hovharoyan3262 7 ай бұрын
Спасибо за урок.Поясните пожалуйста RELATIONSHIP это как related_name в django orm?
@artemshumeiko
@artemshumeiko 7 ай бұрын
не совсем related_name в Джанго -- это просто название связи, а сама связь задается через models.ForeignKey или models.ManyToManyField. В Алхимии связь всегда задается через relationship(), а тип связи (m2o, o2o, m2m) определяется через тип внутри конструкции Mapped[...]
@hovharoyan3262
@hovharoyan3262 7 ай бұрын
спасибо
@xjpfxei
@xjpfxei 6 ай бұрын
А как связать двух юзеров одной таблицы? Скажем, мне надо учеников рассадить парами.. Ну чтобы в таблице был такой столбец у каждого ученика, ссылающийся на другого ученика..
@nateriver8261
@nateriver8261 10 ай бұрын
А какая разница между join и joinedload
@artemshumeiko
@artemshumeiko 10 ай бұрын
Join вернет плоскую табличную структуру с N + M колонками (где N - кол-во столбцов первой таблицы, M - второй) Joinedload выполнит по сути тот же самый SQL запрос, но после получения данных, Алхимия приведет его к вложенной структуре, где каждый элемент будет иметь N атрибутов (исходных столбцов) + 1 relationship, внутри которого будет данные второй таблицы Надеюсь, понятно объяснил
@nateriver8261
@nateriver8261 10 ай бұрын
@@artemshumeiko то есть, use case для join, в рамках алхимии, это когда нужно, например, пофилтровать по связанной таблице? Например, получить воркеров с полем workload=fulltime из таблицы резюме?
@etri
@etri 5 ай бұрын
Расставил breakpoints как у тебя, но дебаггер тупо их проскакивает, не могу понять в чем дело.
@nateriver8261
@nateriver8261 10 ай бұрын
selectinload очень похож на джанговский prefetch_related
SQLAlchemy: Advanced RELATIONSHIPS | Indexes | Constraints #10
21:38
Артём Шумейко
Рет қаралды 10 М.
Angry Sigma Dog 🤣🤣 Aayush #momson #memes #funny #comedy
00:16
ASquare Crew
Рет қаралды 51 МЛН
Je peux le faire
00:13
Daniil le Russe
Рет қаралды 22 МЛН
GIANT Gummy Worm Pt.6 #shorts
00:46
Mr DegrEE
Рет қаралды 76 МЛН
Подготовка к собесу - Оптимизация запросов
25:12
FastAPI ТОП Библиотек и Расширений [2024]
12:21
Артём Шумейко
Рет қаралды 18 М.
SQLAlchemy: How to use Session and ORM
13:37
Артём Шумейко
Рет қаралды 22 М.
Стал Senior Разработчиком за 2 года. Главные выводы
31:04
Creating Many-To-Many Relationships in Flask-SQLAlchemy
7:28
Pretty Printed
Рет қаралды 44 М.