템플릿 렌더링은 웹 애플리케이션에서 동적 데이터를 HTML로 변환하여 사용자에게 보여주는 중요한 작업입니다. Tornado는 간단하고 빠른 웹 프레임워크로, 이러한 템플릿 렌더링을 쉽게 구현할 수 있습니다. 이 블로그 포스트에서는 Tornado에서의 템플릿 렌더링에 대해 알아보겠습니다.
템플릿 엔진 선택
Tornado에서는 Jinja2와 Mako 등 다양한 템플릿 엔진을 사용할 수 있습니다. 이 블로그 포스트에서는 Jinja2를 사용하여 Tornado에서의 템플릿 렌더링을 설명하겠습니다.
Jinja2 설치
Jinja2를 사용하기 위해 먼저 Jinja2 파이썬 패키지를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:
pip install Jinja2
Tornado 애플리케이션 설정
먼저, Tornado 애플리케이션에서 템플릿 엔진을 사용하기 위해 설정을 해야 합니다. 다음과 같이 Tornado 애플리케이션 클래스 내부에 설정을 추가합니다:
import tornado.web
class MyApplication(tornado.web.Application):
def __init__(self):
handlers = [
(r'/', MainHandler),
]
settings = {
'template_path': 'templates', # 템플릿 파일의 경로 설정
}
super().__init__(handlers, **settings)
위 설정에서 template_path
는 Tornado가 템플릿 파일을 찾을 경로를 나타냅니다. 이 경로는 템플릿 파일을 저장하는 디렉토리의 경로로 설정해야 합니다.
템플릿 파일 작성
다음으로, 작성한 HTML 템플릿 파일을 생성해야 합니다. 템플릿 파일은 Tornado 애플리케이션이 template_path
에서 지정한 디렉토리에 위치해야 합니다.
예를 들어, templates
디렉토리 아래에 index.html
템플릿 파일을 작성해 보겠습니다:
<!DOCTYPE html>
<html>
<head>
<title>Tornado 템플릿 렌더링</title>
</head>
<body>
<h1>환영합니다!</h1>
<p>안녕하세요, {{ name }}님!</p>
</body>
</html>
위 템플릿 파일은 {{ name }}
부분에 동적으로 변경되는 데이터를 나타냅니다.
템플릿 렌더링
이제 Tornado 애플리케이션에서 템플릿을 렌더링하는 방법을 알아보겠습니다. Tornado의 요청 핸들러 내에서 다음과 같이 템플릿을 렌더링할 수 있습니다:
import tornado.web
import tornado.ioloop
from tornado.template import Template
class MainHandler(tornado.web.RequestHandler):
def get(self):
template = Template(filename='templates/index.html')
self.write(template.generate(name='John'))
위 코드에서 Template
클래스를 사용하여 index.html
템플릿 파일을 로드하고, generate
메소드를 사용하여 템플릿을 렌더링한 후 write
메소드를 사용하여 클라이언트에게 응답을 보냅니다. generate
메소드는 템플릿에서 사용된 동적 데이터를 인자로 받습니다.
결과 확인
이제 Tornado 애플리케이션을 실행하고 웹 브라우저에서 확인해 보세요. localhost:8888
주소로 접속하면 다음과 같은 결과를 볼 수 있습니다:
Tornado 템플릿 렌더링
환영합니다! 안녕하세요, John님!
위와 같이 Tornado에서 간단하게 템플릿을 렌더링하여 웹 애플리케이션을 개발할 수 있습니다. 이렇게 작성한 템플릿 파일은 필요에 따라 동적 데이터를 추가하여 웹 페이지를 다양하게 개발할 수 있습니다.
이상으로 Tornado에서의 템플릿 렌더링에 대해 알아보았습니다. 템플릿 엔진을 활용하여 다양한 기능을 개발할 수 있으니, 추가적인 학습과 실험을 통해 더욱 높은 수준의 웹 애플리케이션을 개발해보세요!