Aiohttp官方文件翻譯-概述
阿新 • • 發佈:2020-08-18
概述
用於asyncio和Python的非同步HTTP客戶端/伺服器。當前版本是3.6.2。
- 關鍵特性
支援HTTP客戶端和伺服器。
支援WebSocket的客戶端和伺服器,而沒有回撥地獄。
Web伺服器具有中介軟體,訊號和可插入路由。
安裝
pip install aiohttp
您可能需要安裝可選的cchardet庫,以快速替換chardet:
pip install cchardet
為了通過客戶端API加快DNS解析速度,您也可以安裝aiodns。強烈建議使用此選項:
pip install aiodns
一鍵式安裝所有
pip install aiohttp[speedups]
開始
客戶端
import aiohttp import asyncio async def fetch(session, url): async with session.get(url) as response: return await response.text() async def main(): async with aiohttp.ClientSession() as session: html = await fetch(session, 'http://python.org') print(html) if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(main())
服務端
from aiohttp import web async def handle(request): name = request.match_info.get('name', "Anonymous") text = "Hello, " + name return web.Response(text=text) app = web.Application() app.add_routes([web.get('/', handle), web.get('/{name}', handle)]) if __name__ == '__main__': web.run_app(app)