SQLAlchemy,您能在一个查询中得到特定实体的列值吗(使用列名)?

2024-09-28 05:36:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python3和SQLAlchemy,我的问题是,是否有一种方法可以在一个查询中(可能使用列名)? 你知道吗

现在我有办法做到这一点。你知道吗

character = session.query(Character).filter_by(id=1).first()
print(character.level)
>>> 10

我想做的是这样的事情,我不知道我想要哪个列值:

character = session.query(Character).filter_by(id=1).first()
for i, column in enumerate(character.__table__.columns):
    if i == 3:
        #Not sure about this query
        someColumnValue = session.query(character).load_only(column.name)
        # Lets say its the level column
        someColumnValue += 1
        session.commit()
        #And the character.level will now be 10 + 1 stored in the database
        print(someColumnValue)
>>> 11

也许现在有办法做到这一点,或者也许有一个更聪明的方法让我得到我的结果,也许以另一种方式迭代。你知道吗


Tags: the方法idbysessioncolumnfilterquery
1条回答
网友
1楼 · 发布于 2024-09-28 05:36:38

我想您正在寻找sqlalchemy列iterate来看看Mapper.attrs

from sqlalchemy import inspect
mapper = inspect(Character)
for column in mapper.attrs:
    print column.key

相关问题 更多 >

    热门问题