关于aiomysql配合sqlalchemy导入表结构的问题
import asyncio
import sqlalchemy as sa
from aiomysql.sa import create_engine
@asyncio.coroutine
def go():
engine = yield from create_engine(user='root',db='test',host='127.0.0.1',password='root')
metadata = sa.MetaData(bind=engine)
tbl = sa.Table('tbl', metadata
,sa.Column('id', sa.Integer, primary_key=True)
,sa.Column('val', sa.String(255))
)
with (yield from engine) as conn:
res = yield from conn.execute(tbl.select())
for row in res:
print(row.id, row.val)
asyncio.get_event_loop().run_until_complete(go())
上述是aiomysql所给出的官方示例,我想问的是,对于每一张表在上述的案例中都要使用sa.Table()方法进行数据表的映射,并且在这个映射中必须要列出所有的数据列。
在单独使用sqlalchemy(不使用aiomysql)的时候可以通过如下方法导入
alphaTable = Table('alpha', metadata, autoload=True)
但是配合上aiomysql之后会出现报错,想问有没有什么办法是可以不用自己枚举信息列直接通过某些方法导入?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
额外创建一个普通的 SQLAlchemy engine,然后用
autoload_with=blocking_engine
替代autoload=True
。因为表映射应该只发生一次,所以此时不使用异步应该可以接受。