Python SQLAlchemy声明性。指定要选择的列

Python SQLAlchemy声明性。指定要选择的列,python,sqlalchemy,Python,Sqlalchemy,声明性基: Base = declarative_base() Base.query = Session.query_property() 班级: class Cheat(Base): __tablename__ = 'cheats' id = Column(Integer, primary_key = True, autoincrement = True) cheat = Column(Text) name = Column(String(255), index = Tr

声明性基:

Base = declarative_base()
Base.query = Session.query_property()
班级:

class Cheat(Base):

  __tablename__ = 'cheats'

  id = Column(Integer, primary_key = True, autoincrement = True)
  cheat = Column(Text)
  name = Column(String(255), index = True)
  _html = Column('html', Text)
  _slug = Column('slug', String(255))

  @hybrid_property
  def html(self):
    return self._html

  @html.setter
  def set_html(self, md):
    from markdown import markdown
    self._html = markdown(md)

  @hybrid_property
  def slug(self):
    return self._slug

  @slug.setter
  def set_slug(self, name):
    self._slug = slugify(name)

  def __init__(self, name, cheat):
    self.name = name
    self.slug = name
    self.cheat = cheat
    self.html = cheat

  def __repr__(self):
    return "Cheat<%s>" % self.name
SQLAlchemy将生成类似以下内容的SQL语句:

从作弊中选择名称、slug、作弊、html

但我希望我的SQL语句是:

选择名称,从作弊中选择slug

所以我需要指定要检索哪些列,因为我实际上不需要通过网络从数据库中提取大量文本。 我如何做到这一点?

将它们定义为,那么只有在访问

from sqlalchemy.orm import deferred

class Cheat(Base):

  __tablename__ = 'cheats'

  id = Column(Integer, primary_key = True, autoincrement = True)
  cheat = deferred(Column(Text))
  name = Column(String(255), index = True)
  _html = Column('html', Text)
  _slug = deferred(Column('slug', String(255)))
from sqlalchemy.orm import deferred

class Cheat(Base):

  __tablename__ = 'cheats'

  id = Column(Integer, primary_key = True, autoincrement = True)
  cheat = deferred(Column(Text))
  name = Column(String(255), index = True)
  _html = Column('html', Text)
  _slug = deferred(Column('slug', String(255)))
for name, slug in session.query(Cheat.name, Cheat.slug):
    print name, slug