💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gwP 💡 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot Пишу про лайфхаки при поиске работы, рынок труда и способы развития разработчиков в TG канале - подписывайся: t.me/artemshumeiko Вступай в Python-сообщество (здесь можно задать любой вопрос): t.me/python_community_rus
@coryphoenixxx823810 ай бұрын
Поправь порядок видосов в плейлисте
@artemshumeiko10 ай бұрын
спасибо @@coryphoenixxx8238
@7IdE9 ай бұрын
Такое впечатление, что тут пропущен видос. Про scalars не было вообще ничего, а тут "напомню". И именно объяснение этой штуки меня очень интересовало. Да и Core VS ORM тоже не было...
@АртурЛюбимов-й1оАй бұрын
ООО! Помню тебя из курсов "поколение python". Ты себе не изменяешь, всегда авторов поправляешь)
@7IdEАй бұрын
@@АртурЛюбимов-й1о, я капец как прифигел от твоего коммента. :D
@hunterxvov4ik6 ай бұрын
видно, что постарался над курсом. Помню, летом 2023 смотрел твои видео по фастапи и они мне сильно не понравились. В этом же курсе чувствуется опыт и работа. Однозначно лайк
@dima51165 ай бұрын
Согласен, в том курсе прям постоянно код менялся, четкой структуры как будто не было, здесь эти ошибки исправлены, а может быть я сам уже "дорос". Тоже с удовольствием прохожу этот курс
@АлексейКузенков-г4и11 ай бұрын
Супер! Очень интересно и с нетерпением ждем новых!
@АнастасияДолгополова-ш9д10 ай бұрын
Спасибо за урок👍. Отлично объясняешь 🤩. С нетерпением жду тему relationship💪
@artemshumeiko10 ай бұрын
Спасибо) на следующей неделе уже выйдет первое видео по relationships
@emerald228111 ай бұрын
Отличные видео, продолжай в том же духе!
@vladimirfesenko123452 ай бұрын
Здравствуйте, Артем. Получается, что если использовать query builder, а не сырой SQL, то мы по умолчанию защищены от SQL инъекций? Спасибо большое за видео. Я начинающий и для таких как я ваши видео очень полезны.
@artemshumeiko2 ай бұрын
да, верно
@SergeyBakaevRettley11 ай бұрын
на 9:08 можно в where указывать TableName.column, а не TableName.c.column, по крайней мере в sqlalchemy version >2.0. Мне такой синтаксис больше нравится, так как работает автодополнение и есть подсветка
@artemshumeiko11 ай бұрын
Если имеем дело с таблицами Table(...), то обязаны указывать .c. Если задаем модель через класс, то да, .c не нужен и есть подсказки в IDE
@asg551111 ай бұрын
Очень доступное объяснение. Талант к преподаванию!
@Александр-ъ3о1щ11 ай бұрын
Спасибо, всё подробно обьяснил ! ВОПРОС - а не сброится ли наш primary_key если мы применим метод refresh перед коммитом в функции обновления воркера? и получится так что апдейт будет искать ключи которых не существует..
@vasiliy23967 ай бұрын
Курс очень нравится, но я не совсем понимаю, если мы используем ORM, то работаем через sessionmaker, а если с Core, то через engine? Или это просто совпадение? Ведь работает и так, и так. В чем отличие и как понять, что использовать? Заранее спасибо)
@artemshumeiko7 ай бұрын
в ORM обязательно использовать сессию, именно она собирает в себя все изменения и при коммите разом отправляет их в базу данных. engine просто исполняет запросы и не способен держать контекст я говорю про session.add(), session.add_all() и, например, user = session.get(User, 1) user.name = "Ivan" session.commit()
@Qustoos9 ай бұрын
Выборка через where всегда требует .c. указывать? В документации не нашел конкретно про "c" Кажется что "c" необходим для таблицы созданных через Table, а таблицы через Classname(Base) позволяет к полю id обращаться как к атрибуту модели.
@artemshumeiko9 ай бұрын
.с нужен только для table, для cte и subquery вроде я упоминаю это в курсе
@Biongar11 ай бұрын
Сделай пожалуйста следующее: Есть допустим таблица User, у него email и username, оба unique=True, вопрос, при добавлении User, если вылетел exception UniqueConstraintFailed, как нам в алхимии понять какое именно поле не прошло проверку на уникальность
@emerald228111 ай бұрын
Мб проверь есть ли юзер по емейлу потом по юзернейму
@Biongar11 ай бұрын
@@emerald2281 каждый раз 2 лишних запроса писать?
@nateriver826111 ай бұрын
А как в алхимии решается проблема N+1?
@artemshumeiko11 ай бұрын
Покажу в видео о relationship. Они будут под номерами 9,10
@awesomeex58213 ай бұрын
подача конечно хорошая, но дико раздражает вот эти "я тут немного изменил код" или вообще начинаешь говорить про темы которые еще не проходили так как будто мы уже это прошли, уже второй курс смотрю у тебя и дико тригерит что постоянно меняется код вне ролика, приходится потом сидеть разбираться почему что то не работает и тд
@BersGriffith3 ай бұрын
я бы для ORM подхода добавил with_for_update(): foo = session.query(Foo).filter(Foo.id==1234).with_for_update().one(). Почему? Чтобы на момент обновления строки в таблице она была заблокирована и конкурентная транзакция не смогла ее изменить еще как то.
@Habimbo2 ай бұрын
Артем , привет , у тебя остался еще курс на степике по FastApi?
@scr1pt6518 ай бұрын
Артем, привет! Большое спасибо за курс! Подскажи, пожалуйста, как определить, что лучше для проекта выбрать: SQLAlchemy Core или SQLAlchemy ORM? Что является более ограниченным по возможностям и может у тебя есть какие-нибудь ресурсы, где можно почитать про выбор кора или орм? Заранее спасибо!
@xacho8611 ай бұрын
Хочу обратить внимание, что согласно документации one_or_none() может возбудить ошибку при возврате более одной строки - MultipleResultError (с названием могу путать);
@natpagle262810 ай бұрын
привет! я новичок в sqlalchemy да и вообще в питоне, столкнулся с проблемой циклических импортов когда попытался связать 2 модели, есть модель User, есть модель UserRole, в User есть поле roles: Mapped[List[UserRole]], а в UserRole поле user: Mapped[User]. Ну и импортировав необходимые классы получил ошибку. Как вообще грамотно с таким бороться?
@artemshumeiko10 ай бұрын
достаточно название модели заключить в кавычки: Mapped[List["UserRole"]] и убрать явные импорты -- алхимия дальше разберется :)
@artemshumeiko10 ай бұрын
ровно так же кстати работают импорты моделей в Pydantic, если встретитесь