推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zyxbcde
V2EX  ›  Python

想问下 sqlalchemy1.4 的异步模式有人试过么

  •  
  •   zyxbcde · Apr 2, 2021 via Android · 2749 views
    This topic created in 1868 days ago, the information mentioned may be changed or developed.

    这里是一个被开发逼着写代码的菜鸡商务。

    sqlalchemy 出了 1.4 以后想试试异步模式,就找了个 mysql 数据库写了几行测试。

    import asyncio

    from sqlalchemy.ext.asyncio import create_async_engine

    from sqlalchemy.ext.asyncio import AsyncSession

    async def main():

    engine = create_async_engine("mysql+aiomysql://root:[email protected]:3333/test")
    
    session = AsyncSession(engine)
    
    await session.execute("select * from students")
    
    await session.close()
    

    if name == 'main':

    asyncio.run(main())
    

    然后在 aiomysql 连接关闭的时候报错 event loop is closed,我感觉我的代码写的没问题啊,就这么三四行,然后我还不甘心把官方文档里的例子改成 aiomysql 丢进去还是一样的错。

    想请试过的大神给指导下

    4 replies    2021-04-02 19:29:18 +08:00
    Te11UA
        1
    Te11UA  
       Apr 2, 2021
    目测用的是 Windows
    Linux 环境应该不会了
    Wincer
        2
    Wincer  
       Apr 2, 2021
    没用过异步模式,但是你的写法似乎与官方文档的不太一致。https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html,文档里是使用 async with async_session() as session: 这样来创造 session 的,你可以按文档里说的试试
    zyxbcde
        3
    zyxbcde  
    OP
       Apr 2, 2021 via Android
    @Te11UA 怀疑过,我甚至把 python 删了重装了一遍,等回公司试试。
    zyxbcde
        4
    zyxbcde  
    OP
       Apr 2, 2021 via Android
    @Wincer 异步模式刚出的,我也是试试,不过这里跟 with 没关系,用 with 也是一样的错。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1044 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 18:41 · PVG 02:41 · LAX 11:41 · JFK 14:41
    ♥ Do have faith in what you're doing.