我正在尝试让SQLAlchemy自动加载我的表列(使用MySQL,如果这很重要)。我有:
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()
class User(object):
__tablename__ = 'users'
__table_args__ = {'schema': 'users', 'autoload': True}
这是我的错误:
InvalidRequestError: SQL expression, column, or mapped entity expected - got '<class 'myproject.models.User'>'
我添加了一个__init__
函数,但仍然遇到同样的错误:
def __init__(self,col1,col2):
self.col1 = col1
self.col2 = col2
答案 0 :(得分:2)
您的User
课程应该Base
作为其父级,而不是object
:
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
engine = create_engine(db_string, echo=db_echo)
Base = declarative_base()
Base.metadata.bind = engine
class User(Base):
__tablename__ = 'users'
__table_args__ = {'schema': 'users', 'autoload': True}