SQLAlchemy ORM для загрузки указанных c столбцов в Model.query - PullRequest
0 голосов
/ 14 января 2020

Я новичок ie в мире питона / sqlachemy. Я пытаюсь получить данные из PostgreSQL, используя sqlachemy в flask, где мне нужно выбрать только выбранный столбец вместо потоковой передачи всех столбцов из базы данных по сети. Один из подходов заключается в использовании сессии (как показано ниже), которая работает нормально,

session.query(User.user_id, User.name).all()

Но по какой-то причине я хотел бы придерживаться метода Model.query вместо использования сессий. В итоге я использовал что-то вроде ниже:

User.query.options(load_only(User.user_id, User.name)).all()

Вышеупомянутый фрагмент кода не фильтрует выбранный столбец, а возвращает весь столбец. Похоже, sqlachemy не учитывает аргументы load_only. Почему это поведение и какое-либо решение для достижения моего варианта использования в Model.query вместо использования сеансов?

Моя пользовательская модель выглядит следующим образом:

class User(db.Model):
    __tablename__ = 'user_info'

    user_id = Column(String(250), primary_key=True)
    name = Column(String(250))
    email = Column(String(250))
    address = Column(String(512))

Информация о версии

  • Python - 3,7
  • sqlachemy - 1.3.11

Редактировать 1: Хотя я добавил атрибуты load_only, Он генерирует следующий запрос,

SELECT user.user_id AS user_user_id, user.name AS user_name, user.email AS user_email, user.address AS user_address FROM user_info
...