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에서 템플릿을 렌더링하기 위해서는 다음과 같은 단계를 따라야 합니다:
-
Pyramid 프로젝트의 “views.py” 파일에 필요한 모듈을 임포트합니다:
from pyramid.response import Response from pyramid.view import view_config from pyramid.renderers import render_to_response
-
해당 뷰 함수에
@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
문에는 템플릿 변수의 값을 딕셔너리 형태로 반환합니다. -
config.add_route()
를 사용하여 라우트를 설정합니다:config.add_route('home', '/')
이 예시에서는 루트 경로에 대한 라우팅을 설정했습니다.
-
Pyramid 애플리케이션을 실행하고 웹 브라우저에서 해당 URL을 열면, 템플릿이 렌더링된 웹 페이지를 볼 수 있습니다.
이렇게 Pyramid에서 템플릿을 렌더링하는 방법을 알아보았습니다. 템플릿 엔진을 사용하면 동적인 데이터를 포함한 웹 페이지를 쉽게 생성할 수 있으며, Pyramid은 이를 효과적으로 지원합니다. Jinja2 외에도 다른 템플릿 엔진을 사용해볼 수도 있으니 참고해보세요!