我正在关注http://docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html中的sqlalchemy教程
然而,我使用的是MySQL,而不是使用SQLite后端.问题是,当我尝试执行文字MySQL语句来从users表中选择一列时,例如
SELECT name from users;
Run Code Online (Sandbox Code Playgroud)
它会失败
NoSuchColumnError: "Could not locate column in row for column 'users.id'"
Run Code Online (Sandbox Code Playgroud)
而做一个
SELECT * FROM users
Run Code Online (Sandbox Code Playgroud)
会工作得很好.我错过了什么吗?
Users类定义为:
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
fullname = Column(String(50))
password = Column(String(50))
def __repr__(self):
return "<User(name='%s', fullname='%s', password='%s')>" % (self.name, self.fullname, self.password)
Run Code Online (Sandbox Code Playgroud)
会话定义为:
Session = sessionmaker(bind=engine)
session = Session()
Run Code Online (Sandbox Code Playgroud)
而我正在努力做到
session.query(Users).from_statement('SELECT name from users')
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这个语句在MySQL客户端上运行时工作正常.我错过了什么或者它是一个错误?