AIOHTTP

特徴

  • 非同期HTTP通信するための Client / Server ツール

インストール

$ pip install aiohttp

Getting Started

Client

 1import aiohttp
 2import asyncio
 3
 4
 5async def main():
 6    # session 作成。非同期コンテキストマネージャ async with を使うと
 7    # 処理終了時に session はクローズされる
 8    async with aiohttp.ClientSession() as session:
 9
10        # URL へアクセス。.get()時に読み込むのはヘッダー情報のみ
11        async with session.get("http://python.org") as response:
12            print(response.status)
13            print(response.headers["content-type"])
14
15            # body をテキストで非同期に読み込む
16            html = await response.text()
17            print(html[:15])
18
19
20asyncio.run(main())
# windows の場合、
# asyncio.run() の前に asyncio.set_event_loop_policy() をセット
# する必要があるかもしれません
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
asyncio.run(main())

Server

Misc

AIOHTTP を使う際によく使うツール

1from yarl import URL 
2
3url = URL('https://connpass.com/')
4
5print(url / 'explore')
6print(url / 'search' % {'q': 'aiohttp'})

出力

https://connpass.com/explore
https://connpass.com/search?q=aiohttp