aiohttp
3.11.10
웹에서 무언가를 얻으려면:
import aiohttp
import asyncio
async def main ():
async with aiohttp . ClientSession () as session :
async with session . get ( 'http://python.org' ) as response :
print ( "Status:" , response . status )
print ( "Content-type:" , response . headers [ 'content-type' ])
html = await response . text ()
print ( "Body:" , html [: 15 ], "..." )
asyncio . run ( main ())
이것은 다음을 인쇄합니다:
상태: 200 콘텐츠 유형: 텍스트/html; 문자셋=utf-8 본문: <!doctype html> ...
요청에서 나오나요? 왜 그렇게 많은 줄이 필요한지 읽어보세요.
간단한 서버를 사용하는 예:
# examples/server_simple.py
from aiohttp import web
async def handle ( request ):
name = request . match_info . get ( 'name' , "Anonymous" )
text = "Hello, " + name
return web . Response ( text = text )
async def wshandle ( request ):
ws = web . WebSocketResponse ()
await ws . prepare ( request )
async for msg in ws :
if msg . type == web . WSMsgType . text :
await ws . send_str ( "Hello, {}" . format ( msg . data ))
elif msg . type == web . WSMsgType . binary :
await ws . send_bytes ( msg . data )
elif msg . type == web . WSMsgType . close :
break
return ws
app = web . Application ()
app . add_routes ([ web . get ( '/' , handle ),
web . get ( '/echo' , wshandle ),
web . get ( '/{name}' , handle )])
if __name__ == '__main__' :
web . run_app ( app )
https://aiohttp.readthedocs.io/
https://github.com/aio-libs/aiohttp-demos
이 페이지에 링크를 추가하려면 언제든지 Pull Request를 보내주세요!
aio-libs 토론 : https://github.com/aio-libs/aiohttp/discussions
매트릭스 : #aio-libs:matrix.org
우리는 스택 오버플로를 지원합니다. 거기에 질문에 aiohttp 태그를 추가하세요.
선택적으로 aiodns 라이브러리를 설치할 수 있습니다(속도를 위해 적극 권장됨).
aiohttp
Apache 2 라이센스에 따라 제공됩니다.
aiohttp 커뮤니티는 프로젝트 초기에 지원해 주신 Keepsafe(https://www.getkeepsafe.com)에게 감사의 말씀을 전하고 싶습니다.
최신 개발자 버전은 GitHub 저장소(https://github.com/aio-libs/aiohttp)에서 확인할 수 있습니다.
효율성에 관심이 있다면 AsyncIO 커뮤니티가 공식 위키(https://github.com/python/asyncio/wiki/Benchmarks)에서 벤치마크 목록을 유지관리합니다.