如何创建单个aiohttp.ClientSession?

发布于 2022-09-11 22:01:53 字数 93 浏览 19 评论 0

aiohttp推荐一个app使用一个clientsession,但是clientsession无法在协程外声明,那我怎么在不同的协程使用同一个clientsession呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑看君怀她人 2022-09-18 22:01:53
import aiohttp
import asyncio

class MySession:
    _session = None

    @classmethod
    def session(cls):
        if not cls._session:
            cls._session = aiohttp.ClientSession()
        return cls._session

    @classmethod
    def close(cls):
        return cls._session.close()


async def get_sth():
    resp = await MySession.session().get('http://httpbin.org/get')
    print(await resp.text())

async def close_session():
    await MySession.close()

# before start your app
loop = asyncio.get_event_loop()

loop.run_until_complete(get_sth())
# ...

# after stop your app
loop.run_until_complete(close_session())
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文