Size: a a a

2021 January 09

MA

Maxim Afanasev in SPb Python
Pavel
Class aaa: Def init(self), Def bbb (self, name): return name. Хочу по простому вытянуть функцию bbb, чтоб работало как то так: aaa.bbb("name")
Это статический метод.
источник

P

Pavel in SPb Python
Maxim Afanasev
Это статический метод.
Надо загуглить, что это такое
источник

MA

Maxim Afanasev in SPb Python
источник

P

Pavel in SPb Python
Спасибо
источник

M

Matrix Telegram Brid... in SPb Python
agentsmith6969: паша, паша, код на pastebin постить надо
источник

M

Matrix Telegram Brid... in SPb Python
agentsmith6969: def большой буквой написал
источник

M

Matrix Telegram Brid... in SPb Python
agentsmith6969: я конечно придираюсь, но имхо рано ты в классы залез
источник

M

Matrix Telegram Brid... in SPb Python
agentsmith6969: падаван не готов
источник

P

Pavel in SPb Python
Matrix Telegram Bridge
agentsmith6969: def большой буквой написал
Да это не я, а т9) надо глянуть че такое пастбин, мне без них никак, делаю парсер на около 80 потоков) да уже сделал почти
источник

M

Matrix Telegram Brid... in SPb Python
agentsmith6969: ты пишешь код на питоне на телефоне? :D
источник

M

Matrix Telegram Brid... in SPb Python
agentsmith6969: и чо, t9 твой не отключается?
источник

P

Pavel in SPb Python
Matrix Telegram Bridge
agentsmith6969: ты пишешь код на питоне на телефоне? :D
Код в компе в пайчарме, вопрос в телефоне) кстати, тут за оффтоп не наказывают?
источник

YV

Yuliya Volkova in SPb Python
David Shiko
Всем привет. Может быть кто то знает синтаксис как настроить ONDELETE=CASCADE для sqlalchemy на уровне БД (а не адаптера).

Мой текущий вариант удаляет родителя и потомка только при удалении родителя, но при удалении потомка родитель почему то остается

class InterestMeta(Base):
   __tablename__ = "interests_meta"

   id = Column(Integer, primary_key=True, index=True)
   resource_created_datetime = Column(DateTime, server_server_default=func.now())
   interests_data = relationship(
       "InterestData", uselist=False,
       back_populates="interests_meta",
       cascade="all, delete",
       passive_deletes=True)
   users_meta = relationship("UserMeta", back_populates="interests_meta")


class InterestData(Base):
   __tablename__ = "interests_data"

   id = Column(Integer, primary_key=True, index=True)
   content_type = Column(String, nullable=False)
   interests_meta_id = Column(Integer,
                              ForeignKey('interests_meta.id',
                                         ondelete='CASCADE'))
   interests_meta = relationship("InterestMeta", back_populates="interests_data")
Давид, у тебя странный вопрос. Почему родитель должен удаляться при удалении потомка? а если у родителя еще 20 других потомков? При удалении одного из потомков остальные должны лишаться родителя или тоже удаляться тогда?
источник

DS

David Shiko in SPb Python
Yuliya Volkova
Давид, у тебя странный вопрос. Почему родитель должен удаляться при удалении потомка? а если у родителя еще 20 других потомков? При удалении одного из потомков остальные должны лишаться родителя или тоже удаляться тогда?
Подразумевалась, что связь 1 к 1 (не знаю насколько здесь подходят термины родитель-потомок). Мне намекнули, что это плохой подход, т.к. по хорошему нужна 3-я связующая таблица и все это геморно, поэтому я пошел на компромисс с собой и сделал 1 таблицу с 15-ю полями
источник

YV

Yuliya Volkova in SPb Python
delete cascade этот как раз удали все и все что на меня ссылается, но никак все на что я завишу
источник

YV

Yuliya Volkova in SPb Python
David Shiko
Подразумевалась, что связь 1 к 1 (не знаю насколько здесь подходят термины родитель-потомок). Мне намекнули, что это плохой подход, т.к. по хорошему нужна 3-я связующая таблица и все это геморно, поэтому я пошел на компромисс с собой и сделал 1 таблицу с 15-ю полями
вообще, если средствами DB это делать, то тогда это foreign колонки и там и там, но в алхимии же есть cascade= аргумент https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade ты пробовал его? а конкретно - An additional option, all indicates shorthand for "save-update, merge, refresh-expire, expunge, delete",
источник

MA

Maxim Afanasev in SPb Python
Pavel
Код в компе в пайчарме, вопрос в телефоне) кстати, тут за оффтоп не наказывают?
Надеемся на сознательность, обычно работает.
источник

DS

David Shiko in SPb Python
Yuliya Volkova
вообще, если средствами DB это делать, то тогда это foreign колонки и там и там, но в алхимии же есть cascade= аргумент https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade ты пробовал его? а конкретно - An additional option, all indicates shorthand for "save-update, merge, refresh-expire, expunge, delete",
Ну сейчас уже не актуально, у меня стоит сразу 2 каскада, 1 для ДБ и 1 для sqlalchemy.
А вообще как новичок в sqlalchemy скажу, что инструмент нифига не интуитивно понятный.  Доки тоже ситуацию не сильно улучшают, они есть, но порог входа очень высокий (из-за обилия доков, которые надо читать, иначе трындец).
Напрямую с БД в разы легче работать. Единственный плюс, котоый я вижу - единый код для разных БД
источник

YV

Yuliya Volkova in SPb Python
David Shiko
Ну сейчас уже не актуально, у меня стоит сразу 2 каскада, 1 для ДБ и 1 для sqlalchemy.
А вообще как новичок в sqlalchemy скажу, что инструмент нифига не интуитивно понятный.  Доки тоже ситуацию не сильно улучшают, они есть, но порог входа очень высокий (из-за обилия доков, которые надо читать, иначе трындец).
Напрямую с БД в разы легче работать. Единственный плюс, котоый я вижу - единый код для разных БД
все зависит от сложности операций работы с БД и насколько они "трики", модели позволяют делать разный патчинг или сложную логику при удалении/добавлении если таковая нужна, чтобы хорошо SQL поддерживать в большом проекте - надо все равно делать разные хендлеры, генераторы квери и тд, если у тебя в одном месте 4 инсерта и 2 прочтения вот и все общение с базой - тогда ORM тебе действительно не нужна
источник

YV

Yuliya Volkova in SPb Python
а так ORM в питоне достаточно много, есть из чего выбрать
источник