Python을 사용한 웹어플리케이션에서 직접 html 코드에 변수를 선언 사용할 경우의 방법에 대하여 알아봅니다. 어떻게 하면 가능할까요?



# Python 템플릿을 사용한 변수의 선언

일반적으로 html에 변수 선언등을 하지 않으나 간단한 목적 및 상황에 따라 변수를 html에 직접 선언할 필요도 있습니다. 만약 Python Jinja2가 사용되는 경우 아래와 같이 set 키워드를 사용합니다.

set은 html 템플릿 파일에 직접 변수를 선언하고 페이지 내부에서 사용 가능한 키워드입니다. 이를 활용하면 python 내부가 아니어도 변수를 적용하여 사용할 수 있죠. 그럼 아래의 예제에서 자세히 알아보세요.



# set 변수선언 예제보기

아래는 서버에서 받아온 언어값에 따라 페이지의 모든 url을 동적으로 적용하기 위해서 변수 langStr을 사용하는 예제입니다. 이처럼 변수에 등록하면 일일히 수정하지 않아 매우 편리하겠죠? 이런 경우에도 사용할 수 있다는 점 알아두세요. 그럼 아래 예제를 봐주세요.
{% if lang == 'en' %}
{% set langStr = '/en' %}
{% endif %}

<a class="link" href="{{ langStr }}/?category=html">HTML&CSS</a>
<a class="link" href="{{ langStr }}/?category=js">JAVASCRIPT</a>
<a class="link" href="{{ langStr }}/?category=jquery">JQUERY</a>
<a class="link" href="{{ langStr }}/?category=php">PHP</a>

위 예제에 선언된 langStr은 서버에서 받아온 변수 lang의 값이 en인 경우 /en이라는 값을 가지게됩니다. 그렇기 때문에 모든 url 앞에 해당 주소가 추가되죠. 반복되는 작업을 변수를 활용하면 간단하게 업데이트 및 수정을 할 수 있게되죠.



# 마치면서

여기까지 jinja2에서 변수를 선언하는 방법을 자세히 알아봤습니다. 일반적으로 유지보수 및 가독성등의 목적으로 html코드와 서버 코드는 가급적 분리하는 것이 좋겠습니다. 다만 위의 경우처럼 간단하고 다른 소스코드에 영향이 없는 ... 간단한 목적의 경우 쉽게 사용할 수 있는 방법입니다.