我試圖從mysql中加載用戶對象,但我一直在收到UnboundExecutionError:找不到在映射器Mapper | UserDo |用戶,SQL表達式或此會話上配置的綁定。我使用的是經典映射。找不到在映射器上使用經典映射配置的綁定
Base = declarative_base()
# A default constructor is created if one is not already present,
# which accepts keyword arguments of the same name as that of the mapped attributes.
class UserDo(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key = True)
fname = Column(String(100))
lname = Column(String(100))
email = Column(String(200))
salt = Column(String(100))
created_on = Column(TIMESTAMP) # from sqlalchemy.dialects.mysql import TIMESTAMP
class BaseService(object):
def __init__(self):
self._engine = create_engine('mysql://[email protected]/my_db', pool_recycle = 3600)
self._Session = sessionmaker(bind = self._engine)
self._session = Session()
class UserService(BaseService):
def create(self, data):
print self._session.query(UserDo).first() # Error
我想知道是否因爲我的create_engine語句而出現錯誤。也許我沒有提供正確的連接格式。我的本地數據庫沒有密碼。
而且,別的,我注意到: 打印self._session.query(UserDo)
打印選擇 「用戶」 .ID AS USER_ID, 「用戶」 .fname AS user_fname, 「用戶」 .lname AS user_lname,「user」.email AS user_email,「user」.salt AS user_salt,「user」.created_on AS user_created_on FROM「user」
這是一個語法錯誤。無論哪種方式,我不關心SQLAlchemy在內部做了什麼,只要做User.fname,User.lname(etc),按照定義工作。
任何人看到發生了什麼?
雖然這解決了手頭的問題,我不知道是否有人知道它爲什麼有效? – Thornhale