[파이썬] Pyramid에서의 템플릿 렌더링

Pyramid은 Python 웹 프레임워크로, 템플릿 엔진을 사용하여 동적인 웹 페이지를 생성하는 데 유용합니다. 템플릿 엔진은 HTML과 Python 코드를 조합하여 웹 어플리케이션을 만들 수 있는 강력한 도구입니다.

Pyramid에서는 여러 가지 템플릿 엔진을 지원하며, 그 중에서도 가장 널리 사용되는 엔진은 “Jinja2”와 “Chameleon”입니다. 이 블로그 포스트에서는 Jinja2를 예시로 사용하여 Pyramid에서의 템플릿 렌더링에 대해 알아보겠습니다.

Jinja2 템플릿 엔진 설치

Jinja2를 사용하기 위해 먼저 해당 패키지를 설치해야 합니다. 가상 환경을 활성화한 후, 다음 명령을 사용하여 설치할 수 있습니다:

pip install jinja2

Pyramid 프로젝트에 템플릿 폴더 추가

Pyramid 프로젝트에 템플릿을 사용하기 위해서는 템플릿 파일들을 저장할 폴더를 생성해야 합니다. 이 폴더는 보통 “templates”라는 이름으로 생성하며, 프로젝트의 루트 디렉토리에 위치시킵니다.

project/
├── app.py
└── templates/
    └── index.html

위의 예시에서는 “templates” 폴더를 생성하고, “index.html”이라는 템플릿 파일을 저장했습니다.

템플릿 파일 작성하기

Jinja2는 HTML과 비슷한 문법을 사용하여 템플릿 파일을 작성할 수 있습니다. 다음은 간단한 예시입니다:


<!-- templates/index.html -->
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>

위의 예시에서는 “title”과 “name”이라는 변수를 사용하여 동적인 데이터를 템플릿에 포함시켰습니다. 이러한 변수들은 나중에 Python 코드에서 제공되는 값을 가지게 됩니다.

템플릿 렌더링하기

Pyramid에서 템플릿을 렌더링하기 위해서는 다음과 같은 단계를 따라야 합니다:

  1. Pyramid 프로젝트의 “views.py” 파일에 필요한 모듈을 임포트합니다:

    from pyramid.response import Response
    from pyramid.view import view_config
    from pyramid.renderers import render_to_response
    
  2. 해당 뷰 함수에 @view_config 데코레이터를 사용하여 뷰 설정을 추가합니다:

    @view_config(route_name='home', renderer='templates/index.html')
    def home(request):
        return {
            'title': 'Welcome to My Pyramid App',
            'name': 'John Doe'
        }
    

    이 예시에서는 “home”이라는 라우트에 대한 뷰 함수를 정의하고, 해당 뷰 함수가 “templates/index.html” 템플릿을 렌더링하도록 설정했습니다. return 문에는 템플릿 변수의 값을 딕셔너리 형태로 반환합니다.

  3. config.add_route()를 사용하여 라우트를 설정합니다:

    config.add_route('home', '/')
    

    이 예시에서는 루트 경로에 대한 라우팅을 설정했습니다.

  4. Pyramid 애플리케이션을 실행하고 웹 브라우저에서 해당 URL을 열면, 템플릿이 렌더링된 웹 페이지를 볼 수 있습니다.

이렇게 Pyramid에서 템플릿을 렌더링하는 방법을 알아보았습니다. 템플릿 엔진을 사용하면 동적인 데이터를 포함한 웹 페이지를 쉽게 생성할 수 있으며, Pyramid은 이를 효과적으로 지원합니다. Jinja2 외에도 다른 템플릿 엔진을 사용해볼 수도 있으니 참고해보세요!