이 포스트에서는 aiohttp를 사용하여 Python에서 정적 리소스를 제공하는 방법을 알아보겠습니다. aiohttp는 Python에서 비동기 웹 서버 및 클라이언트를 구축하기 위해 널리 사용되는 라이브러리입니다. 정적 리소스는 웹 서버에서 직접 제공되는 파일로, 예를 들어 HTML, CSS, JavaScript 파일 등이 해당됩니다.
aiohttp 설치하기
먼저 aiohttp를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:
pip install aiohttp
aiohttp 웹 서버 만들기
다음은 aiohttp를 사용하여 간단한 웹 서버를 만드는 예제입니다. main.py
라는 이름으로 파일을 만들고 아래의 코드를 추가합니다.
from aiohttp import web
async def handle(request):
return web.Response(text="Hello, World!")
app = web.Application()
app.add_routes([web.get('/', handle)])
if __name__ == '__main__':
web.run_app(app)
위의 코드는 '/ '
경로에 요청이 들어오면 Hello, World!
라는 텍스트를 응답으로 반환하는 간단한 핸들러를 정의합니다. 웹 서버는 web.run_app(app)
를 호출하여 실행됩니다.
정적 리소스 서비스 추가하기
이제 정적 리소스 서비스를 포함하여 위의 예제를 확장해 보겠습니다. main.py
파일을 업데이트하고 아래의 코드를 추가합니다.
from aiohttp import web
async def handle(request):
return web.Response(text="Hello, World!")
async def index(request):
return web.FileResponse('index.html')
app = web.Application()
app.router.add_get('/', handle)
app.router.add_static('/static/', path='static/', name='static')
app.router.add_get('/index', index)
if __name__ == '__main__':
web.run_app(app)
위의 코드에서 /static/
경로로 접근하면 static/
디렉토리에서 해당 파일을 찾아 클라이언트에 반환합니다. /index
경로로 접근하면 index.html
파일을 반환합니다.
실행하기
터미널에서 다음 명령어를 실행하여 서버를 시작할 수 있습니다.
python main.py
웹 브라우저에서 localhost:8080
에 접속하면 “Hello, World!” 메시지와 함께 서버의 응답을 확인할 수 있습니다.
정적 리소스는 localhost:8080/static/
경로를 사용하여 접근할 수 있습니다. 브라우저에서 localhost:8080/static/css/style.css
를 열면 해당 CSS 파일을 확인할 수 있습니다.
정리
aiohttp를 사용하면 Python에서 간단하고 효율적인 웹 서버를 만들 수 있습니다. 정적 리소스 서비스를 추가함으로써 웹 애플리케이션을 더욱 풍부하게 만들 수 있습니다.