파이썬 aiohttp 모듈은 비동기 HTTP 클라이언트 및 서버를 구축하기 위한 라이브러리이다. asyncio 모듈과 함께 사용된다. aiohttp는 고성능 및 오류 처리를 위한 다양한 기능을 제공한다.
설치
aiohttp는 pip를 사용하여 설치할 수 있고 명령어는 다음과 같다.
pip install aiohttp
# pip install aiohttp==3.7.3 # 특정 버전 설치
기본 사용법
aiohttp, asynio 를 import 해준다.
import asyncio
import aiohttp
GET 요청 예제
아래는 aiohttp를 사용한 간단한 GET 요청 예제이다. async with 구문을 사용하여 클라이언트를 생성하고 요청을 보낼 수 있다.
import asyncio
import aiohttp
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, 'https://www.example.com')
print(html)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
fetch 함수를 정의하여 aiohttp의 get() 메서드를 사용하여 GET 요청을 보낸다. async with 구문을 사용해 클라이언트 세션을 생성하고 요청을 보낸 후 응답을 받아올 수 있다.
POST 요청 예제
aiohttp를 사용한 POST 요청 예제.
JSON 데이터를 포함하는 POST 요청을 보낸다.
import asyncio
import aiohttp
import json
async def fetch(session, url, data):
headers = {'Content-Type':'application/json'}
async with session.post(url, data=json.dumps(data), headers=headers)
as response:
return await response.text()
async def main():
async with aophttp.ClientSession() as session:
data = {'name': 'John Doe', 'age': 30}
response = await fetch(session, 'https://naver.com/api', data)
print(response)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
위 예제에서 fetch 함수를 사용하여 aiohttp의 post() 메서드를 통해 POST 요청을 보낸다. 요청에는 JSON 데이터가 포함되어 있고, Content-Type 헤더를 설정해 데이터 형식을 지정한다.
'IT > Python' 카테고리의 다른 글
[Python] requirements.txt 생성하는 법 (1) | 2023.12.01 |
---|---|
[Python] 파이썬 Counter (0) | 2023.11.24 |
[Python] 파이썬 map(), map함수 (0) | 2023.11.15 |
[Python] 파이썬 언더스코어(_) (1) | 2023.11.14 |
[Python] 파이썬 반복문에서 언더바(_) 사용 (0) | 2023.11.14 |