반응형

0. 들어가기

-. 주식 스크리닝 페이지를 만들기 위해, 이전 포스팅에서 주식처리 - 서버 - 웹 UI의 3단 구조가 필요하다 계획했다. 서버는 Flask로 간단하게 구현 했고, 주식처리는 키움 OPEN API를 이용해서 구현하면 된다. 웹 UI를 어떻게 할까? 고민을 하다가 역시 파이썬은 날먹이라는 절대명제를 달성하기 위해 Jinja라는 template Engine을 사용하기로 결정했다.

1. Jinja? 神社? 신사? templat engine?

-. NodeJS에 express/jade가 있다면, 플라스크에는 Jinja가 있다. 예~~에전에 노드 처음 사용할 때 express 쓰면서 와! 신세계다! 했는데, 플라스크에도 비슷한 느낌의 template Engine이 있더라. 

-. Template Engine에 대해 위키피디아 검색을 해보면, 우측의 그림과 함께 명료한 설명이 나온다.

A template processor (also known as a template engine or template parser) is software designed to combine templates with a data model to produce result documents. The language that the templates are written in is known as a template language or templating language. For purposes of this article, a result document is any kind of formatted output, including documents, web pages, or source code (in source code generation), either in whole or in fragments. A template engine is ordinarily included as a part of a web template system or application framework, and may be used also as a preprocessor or filter.

 

 

-. 즉, template engine은 "data와 template을 결합하여 결과물을 만들어주는 소프트웨어" 라고 할 수 있다. 위키피디아나 커뮤니티 게시판과 같이 동일한 형태의 페이지가 반복되어 출력되는 경우, 모든 페이지를 완성된 html로 만들어 저장하는 것이 아니라 우측의 웹페이지 표준 양식처럼 header, navigator, article 등에 대해 서식(template)을 정한 다음, 각각의 항목에 대한 내용을 별개의 파일 (data)로 저장하여 관리할 수 있게 해준다.

-. Flask에는 Jinja라고 불리우는 template eingine이 동봉되어 있는데, Flask의 개발자인 Armin Ronacher이 같이 개발한 오픈소스 template engine이다.

-. Jinja 홈페이지에 들어가면 가장먼저 보이는 로고가 신사 모양인데, 한국어로 신사(神社)의 일본어 독음이 Jinja 이다. 무녀 보고싶다.

토리이, 무녀 + Flask ....?

 

 

2. Jinja 사용해보기

-. Flask 내의 renderer로도 jinja 실행이 가능한데, 우선은 jinja 자체를 이용해보려 한다.

1) 설치

-. 간단하게 아래 코드 입력하면 된다. (Flask 설치가 되어있다면, 의존성으로 이미 설치되어 있다고 뜬다.)

pip install jinja2

2) 실행 확인

-. 아래 코드 입력해서 작동확인

from jinja2 import Template
template = Template("Hello {{name}}!")
print(template.render(name = "Dobby"))
>>> Hello Dobby!

 

-. Flask에서 template renderer 기능은 다음 글에서...

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기