SQLAlchemy №4. Модели и объекты в ORM. Работа с метаданными (Часть 2).
HTML-код
- Опубликовано: 15 апр 2023
- Первый русскоязычный видеокурс о SQLAlchemy! Данный видеокурс основан на книге "SQLAlchemy от чайника к алхимику", которая представляет из себя перевод официального туториала от разработчиков алхимии. Данная книга распространяется бесплатно и общедоступно в двух вариантах:
PDF-версия: t.me/massonnn_yt/133
Веб-версия: massonnn.notion.site/SQLAlche...
Если вы хотите, чтобы я сделал ревью вашего проекта, то напишите об этом в моем дискорде:
/ discord
Мой телеграмм канал:
t.me/massonnn_yt
--------------------
Данное видео было сделано бесплатно, не содержит рекламы и не пытается что-то продавать. Если вам кто-то что-то предлагал, то имейте ввиду - это мошенники.
Вы можете поддержать автора, если он вам чем-то помог:
Если вы из России:
410011676049152 (yoomoney)
2200700702094680 (Тинькофф)
Если вы из Украины:
5457082270647394 (ПриватБанк)
Криптовалюты:
ltc1qm6lx5e8q8ff7hs5ne2yxskhs2jhdl6ludq4ud8 (LTC / Litecoin)
bc1qfz7399jdqrxkpmmxyetk0frdskwv23k6p4yhdu (BTC)
0x95643B2702d1C4b965c1451C3f9bAAE7FF35115D (ETH)
TAc1WsbgAeB3UY4LrsfoshkTNHzTF1zqj5 (Tether USD-T) - Наука
Спасибо тебе за контент!
Всё супер, спасибо!
Спасибо за высокую оценку моих стараний! Надеюсь, новые видео станут не менее полезными для вас. А чтобы их не пропустить можно оформить подписку на канал)
ну ты хорош бро, лайк
сижу на последней версии двойки и Column() спокойно работает ничего не запрещали
Дополнение: тайп хинты уже есть
Когда в дочерних классах UserModel убираешь атрибут __tablename__, но при этом в родительском классе прописал метод __tablename__, возникает ошибка AttributeError, с чем это может быть связанно?
upd: Попробовал не через @classmethod, а брать имя экземпляра класса, передавая self аргументом и заработало
А есть же на orm класс DeclarativeBase, если наследовать абстракт от него, то потороха подтягиваются, а через декор иде не понимает что там внутри. Типа работает по итогу одинаково, но так как то более явно получается что ли. А вообще круто классно молодец спасибо лайк подписка все дела)
Я показывал все способы, что касается наследования от DeclarativeBase, этот метод удобен для подсказок, но неудобен, если требуется настройка метаданных.
Почему-то в инете все рекомендуют использовать sessionmaker
s = sessionmaker(engine)
with s() as session:
...
Sessionmaker вспомогательная фабрика, которая позволяет делать ровным счётом тоже самое, только без постоянного указания параметров сессии
ничего не могу найти по поводу __allow_unmapped__ вообще такой атрибут есть?
github.com/MassonNN/masson-aiogram-template/blob/e0e36a6ba2279f4d7b70071fd2fda3860be52b12/src/db/models/base.py#L31
Привет. Как ты сделал ctrl + А в 14:45 ?
Заменить в файлах Ctrl(CMD) + Shift + R
А я могу быть уверен в том, что маппед колумн сам отличит BigInteger от Integer, если я напишу user_id: Mapped[int] = mapped_column(unique=True, nullable=False) или как то иначе надо записать?
UPD: Сорян, не досмотрел =) Если в особых случаях всё равно надо писать BigInteger, то mapped_column - излишнее добавление ИМХО, да еще и с вырвиглазным синтаксисом. Я когда такое впервые увидел в чужих исходниках, вообще сначала подумал, что это не питон
Этот функционал еще не до конца проработан, но я вас уверяю: писать один раз тип данных вместо двух всë еще лучше.
ты американец?
Нет)
докажи@@massonnn
Блин, сначала одно рассказал, потом второе потом 3ее. Будь последовательным, не создавай шумиху в голове плиз.
Рассказ ведётся в соответствии с переводом туториала, если что-то осталось непонятным, то вы можете прочитать его самостоятельно по ссылке в описании
@@massonnn У алхимии самый шизанутый ман во всея айти. В этом случае перевод официального тутора не что-то хорошее, надо лучше быть
@@user-vc9ij4su4e ты еще aiogram доку не читал