我现在正在学习sqlalchemy,原始的sql执行如下:
class Qblvpool(object):
def __init__(self):
self.name = "hhe"
self.size = 0
self.createtime = datetime.now()
metadata = MetaData()
qblvpool = Table('qb_lv_pool', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(128)),
Column('size', Integer),
Column('createtime', DateTime))
mapper(Qblvpool, qblvpool)
engine = create_engine('postgresql+psycopg2://username:password@ip:5432/postgres', echo=True)
Session = sessionmaker(bind=engine)
session = Session()
result = session.execute('select * from qb_lv_pool', mapper=Qblvpool)
row = result.fetchone()
print row.name
它运行正常。但是我希望该行是Qblvpool的一个实例,就像ibatis在java中一样。
我该怎么做或者哪个python ORM支持它?
答案 0 :(得分:0)
使用session.query而不是session.execute
session.query(Qblvpool).all()
答案 1 :(得分:0)
Using Textual SQL下的文档中描述了这一点:
session.query(Qblvpool).from_statement(text('select * from qb_lv_pool')).all()