В SqlAlchemy, как проверить, является ли атрибут столбцом или просто атрибут - PullRequest
0 голосов
/ 18 апреля 2019

Я определил некоторые классы, унаследовавшие декларативную_базу, например:

class SomeClass(Base):
    __tablename__ = 'some_table'
    id = Column("some_table_id", Integer, primary_key=True)
    data = Column(Text)
    some_other_data = "some_other_data"

При создании отчета я хотел бы автоматически получить эти атрибуты Column, оставив только атрибуты, отличные от Column.Есть ли способ проверить это?

1 Ответ

0 голосов
/ 19 апреля 2019

Вы можете получить все столбцы класса Model, используя:

for c in SomeClass.__table__.columns:
    print(c)

Выход:

some_table.some_table_id
some_table.data

Это не даст вам других простых атрибутов этого класса.

Если вы хотите получить данные из полей таблицы (столбцов), используйте приведенный выше код следующим образом

result = session.query(*[c for c in SomeClass.__table__.c]).all()
print(result)

Где session - соединение с БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...