SQLAlchemy, вы можете получить значение столбца определенного права в одном запросе (используя column.name)? - PullRequest
0 голосов
/ 06 декабря 2018

Я использую Python 3 и SQLAlchemy, и мой вопрос заключается в том, можно ли каким-то образом получить значение столбца определенного пользователя (символ в моем случае) в одном запросе (возможно, используя column.name)?

Прямо сейчас у меня есть способ сделать это.

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

Может быть, теперь есть способ сделать это, или, может быть, есть более разумный способ получить мой результат, может быть, итерация другим способом или около того.

1 Ответ

0 голосов
/ 06 декабря 2018

Я думаю, что вы ищете итерацию столбцов sqlalchemy, посмотрите на Mapper.attrs

from sqlalchemy import inspect
mapper = inspect(Character)
for column in mapper.attrs:
    print column.key
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...