[파이썬] aiohttp Jinja2와 `aiohttp` 연동하기

aiohttp-logo

Jinja2

는 Python으로 작성된 웹 애플리케이션 개발을 위한 라이브러리인 aiohttp와 매우 호환성이 높은 템플릿 엔진입니다. 이 글에서는 Jinja2aiohttp와 연동하여 웹 애플리케이션을 개발하는 방법에 대해 알아보겠습니다.

1. Jinja2 설치하기

Jinja2

를 사용하기 위해서는 먼저 패키지를 설치해야 합니다. 아래의 명령어를 사용하여 Jinja2를 설치합니다.

pip install jinja2

2. aiohttp 애플리케이션 생성하기

aiohttp

를 사용하여 웹 애플리케이션을 개발하기 위해 먼저 애플리케이션을 생성해야 합니다. 아래의 코드를 사용하여 aiohttp 애플리케이션을 생성합니다.

from aiohttp import web

app = web.Application()

3. Jinja2 템플릿 설정하기

Jinja2

템플릿을 사용하기 위해 애플리케이션에 템플릿을 설정해야 합니다. 아래의 코드를 사용하여 애플리케이션에 Jinja2 템플릿을 설정합니다.

from aiohttp_jinja2 import setup, template

setup(app, loader=template.PackageLoader('app', 'templates'))

위의 코드에서 'app'은 애플리케이션의 패키지 이름이고, 'templates'는 템플릿 파일이 위치하는 폴더입니다. 이 값을 애플리케이션의 구조에 맞게 수정해야 합니다.

4. 템플릿 파일 작성하기

Jinja2

를 사용하여 템플릿을 작성합니다. 아래는 간단한 예시입니다.

<!-- templates/index.html -->

<html>
    <head>
        <title>{{ title }}</title>
    </head>
    <body>
        <h1>Welcome to {{ title }}!</h1>
    </body>
</html>

5. 라우터에 템플릿 렌더링 추가하기

애플리케이션의 라우터에 템플릿을 렌더링하는 핸들러를 추가해야 합니다. 아래의 코드를 사용하여 라우터에 템플릿 렌더링 핸들러를 추가합니다.

from aiohttp_jinja2 import render_template

async def index(request):
    context = {'title': 'My App'}
    return render_template('index.html', request, context)

app.router.add_get('/', index)

6. 애플리케이션 실행하기

마지막으로, aiohttp 애플리케이션을 실행시킵니다. 아래의 코드를 사용하여 애플리케이션을 실행시킵니다.

web.run_app(app)

놀라운 힘을 지닌 Jinja2aiohttp를 결합하여 웹 애플리케이션을 개발해보세요. 템플릿 엔진을 활용하면 보다 동적이고 유연한 웹 애플리케이션을 구축할 수 있습니다. Happy coding!