#python #sqlalchemy
#python #sqlalchemy
Вопрос:
Я определил некоторые классы, наследующие declarative_base, например:
class SomeClass(Base):
__tablename__ = 'some_table'
id = Column("some_table_id", Integer, primary_key=True)
data = Column(Text)
some_other_data = "some_other_data"
При создании отчета я хотел бы автоматически захватить эти атрибуты столбца, оставив только атрибуты, не относящиеся к столбцу. Есть ли способ проверить это?
Ответ №1:
Вы можете gt все столбцы класса модели, используя:
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
находится соединение с БД.