Python에서 Jinja2 템플릿을 사용하여 표현식으로 html에 출력할 경우 if문을 사용하는 방법을 알아봅니다. 참고로 Python의 Flask 프레임워크는 Jinja2를 사용합다.# Python에서 표현식으로 html에 if 문 사용하기먼저 Jinja2에서 if 문을 사용하기 위해서는 아래와 같이 블록 {% %} 내부에 if를 선언하여 사용합니다. 아래는 if문법을 사용한 4가지 키워드입니다.{% if 조건식 %}// 조건식에 해당하는 경우 endif를 만나기 전까지의 구문을 수행함{% elif 조건식 %}// 위 조건이 아닌 경우 또 다른 조건을 수행함{% else %}// 위 조건이 아닌 경우 무조건 수행함{% endif %}// if 조건식을 코드실행을 끝냄위 4가지의 문법을 사용하여 if문을
Last Modified : 2018-02-08 21:43:48Python jinja2(flask)를 사용할 때 표현식에서 for문을 사용하는 경우 index(인덱스)값을 가져오는 방법을 알아봅니다. 어떻게 하면 for문의 순서값인 index를 가져오는지 아래를 봐주세요. # Python for문 표현식 예제보기아래는 배열값을 가지는 items 변수를 가져와 반복문을 실행하는 예제입니다. 만약 items가 3개의 값을 가지는 경우 for문을 사용하여 루프를 실행해보겠습니다.<ul> {% for item in items %} <li> {{ loop.index }} 번째 줄입니다 </li> {% endfor %}</ul>위 코드를 보면 몇 번째 줄인지 나타내기 위해서 {{ loop.idex }}를 사용하였습니다. 출력결과는 아래와 같습니다.1
Last Modified : 2021-02-20 15:26:11Python을 사용한 웹어플리케이션에서 직접 html 코드에 변수를 선언 사용할 경우의 방법에 대하여 알아봅니다. 어떻게 하면 가능할까요?# Python 템플릿을 사용한 변수의 선언일반적으로 html에 변수 선언등을 하지 않으나 간단한 목적 및 상황에 따라 변수를 html에 직접 선언할 필요도 있습니다. 만약 Python Jinja2가 사용되는 경우 아래와 같이 set 키워드를 사용합니다.{% set 변수명 = 변수값 %}키워드 set은 html 템플릿 파일에 직접 변수를 선언하고 페이지 내부에서 사용 가능한 키워드입니다. 이를 활용하면 python 내부가 아니어도 변수를 적용하여 사용할 수 있죠. 그럼 아래의 예제에서 자세히 알아보세요.! set 변수선언 예제보기아래는 서버에서 받아온 언어값에 따라 페이지
Last Modified : 2020-05-09 19:10:38Python에서 사용되는 Jinja2 template의 표현식에서 만약 타입을 숫자 또는 문자로 바꾸려면 어떻게하는지 알아봅니다.# Jinja2 숫자 문자 타입 변환 방법문자를 숫자 타입으로 바꾸는 방법을 먼저 알아봅니다. 아래의 변수 myNum은 숫자 형태를 띄나 문자로 저장되어 비교문 등에 사용하기 어렵습니다. 이 경우 타입을 바꾸면 비교문에도 사용이 가능하죠. 만저 숫자 타입으로 바꾸는 방법은 아래와 같습니다.{{ 변수 | int }}즉 뒤에 | 기호와 합께 바꿀 타입인 int를 추가하면 됩니다. 그럼 간단한 예제를 볼까요?! Jinja2 숫자 변환 예제10이 넘는 경우에만 okay라는 문구를 출력하는 방법입니다.<div> {% if myNum|int > 10 %} <span>Okay</span
Last Modified : 2021-02-16 21:56:03Python에서 자주 사용되는 Jinja2 템플릿 엔진에서 문자열의 길이를 구하는 방법에 대하여 알아보려고 합니다.어떻게 하면 Jinja2에서 문자열 길이를 구하고 또 출력 할 수 있을까요?# Python jinja2에서 문자열 길이 구하기일단 방법부터 알아보면 표현식에 필터 length를 사용하는 것이 가장 간단하고 쉬운 방법으로 문자열의 길이를 구할 수 있습니다.{{ 문자열 | length }}즉 만약 'webisfree'인 경우 아래와 같이 필터 length를 사용하여 아래와 같이 사용할 수 있습니다.{{ 'webisfree' | length }}// 9를 출력함예상한 것처럼 9를 출력했습니다. 간단합니다.표현식을 사용해 출력했지만 if 분기문에도 사용할 수 있습니다.! if 분기문을 사용해 날짜에 0
Last Modified : 2020-05-15 16:20:58Jinja2 템플릿에서 현재 주소를 출력하려고 합니다. 어떻게 하면 가능할까요? 아래에서 알아봅니다.# Jinja2 템플릿 현재 주소, 파라미터 가져오는 방법일단 방법은 request를 사용합니다. request는 페이지 주소와 관련된 정보를 가지고 있습니다. 그래서 url, pathname등의 정보를 얻을 수 있죠. 그럼 예제를 통해 알아봅니다. 만약 아래와 같은 주소가 있다면...현재 주소 - https://webisfree.com/?category=python이제 각각의 값들을 사용하여 어떤 값이 나타나는지 알아봅니다.{{ request.path }}{{ request.full_path }}각각 출력 결과는 아래와 같습니다. 현재 path와 전체 path 정보를 출력해줍니다.//?category=pyt
Last Modified : 2019-08-07 20:38:54Python에서 html 템플릿에 적용되는 Jinja2를 사용할 때... 만약 특정 변수를 그냥 출력하는 것이 아닌 인코딩하려면 어떻게 하는지 알아봅니다.# Jinja2 인코딩하기, urlencodejinja2에서 url을 인코딩할 수 있는 방법 중 하나로 필터를 활용할 수 입니다. 이때 사용방법은 간단한데 아래처럼 표현식으로 변수를 출력하는 방법입니다.{{ test | urlencode }}뒤의 urlencode 필터는 해당 텍스트를 인코딩하여 출력하게됩니다.! Jinja2 인코딩 필터 urlencode 예제보기간단한 예제를 사용하여 알아봅니다. 만약 현재 페이지를 웹사이트에 추가하는 경우 인코딩 후에 보여주려고 합니다.기존 코드와 변경 후 코드를 확인해보세요.변수 link의 값 : https://webi
Last Modified : 2018-07-27 15:15:22Python에서 AngularJS 사용시 특히 flask 프레임워크를 사용하면 500 internal server error 발생할 수 있으며 이를 수정하는 방법에 대하여 알아봅니다.# Python flask에서 AngularJS 사용시 500 에러가 나타나는 이유원인은 Python에서 사용되는 Jinja2의 표현식 심볼 {{ }}과 AngularJS의 {{ }}가 동일하여 서버에러가 발생하게 된다. 이를 수정하기 위한 방법은 무엇일까요?# Python Jinja2와 AngularJS 사용되는 {{ }} 기호를 다르게 설정하기AngularJS의 표현식에 사용되는 심볼기호를 다르게 적용하면 더 이상 에러는 발생되지 않습니다. 이때 아래와 같이 $interpolateProvider 서비스의 star
Last Modified : 2017-08-11 01:41:15Python에서 Jinja2를 사용할 때 텍스트를 소문자 또는 대문자로 변환, 바꾸는 방법을 알아봅니다. 어떻게 하면 될까요?# Jinja2 템플릿 소문자 대문자 변환하는 방법대문자 소문자 변환은 크게 두 가지 방법이 있습니다. 바로 내장함수를 사용하는 방법과 그리고 필터를 사용하는 방법입니다.1. 내장함수를 사용하기2. 필터 기능을 사용하기각각 알아보죠. 먼저 만약 아래와 같이 test라는 변수가 있는 경우 각각 소문자와 대문자로 변경하려면 어떻게 할까요? 한 번 알아봅니다.test = 'abCdE'! 내장함수 upper(), lower() 사용하기내장함수를 사용하는 방법으로 lower() 그리고 upper()를 사용할 수 있죠. 둘 다 Jinja2 내장함수입니다.{{ test.lower() }}{{ t
Last Modified : 2019-08-01 08:47:32Python에서 검색엔진최적화의 가장 중요한 하나로 sitemap을 빼놓을 수 없습니다. 검색엔진의 크롤링이 sitemap을 기반으로 동작하기 때문입니다.아래는 Python 앱을 사용하는 경우 jinja2를 사용한 템플릿의 sitemap.xml 페이지를 만들어보려고합니다. 아래에서는 Python 프레임워크 중 하나인 Flask를 사용하였습니다. 그럼 어떻게 만들고 동작하는지 아래에서 자세히 알아봅니다.# Python sitemap.xml 만들기앱을 만들기 이 전에 아래와 같은 단계로 구분할 수 있습니다.- Python flask앱에 sitemap.xml 페이지 만들기- sitemap.xml 내부에 jinja2를 사용하여 동적으로 코드 생성하기그럼 flask 앱을 먼저 만들어 봅니다.! Python flas
Last Modified : 2020-11-08 12:24:31파이썬에서 템플릿 엔진 jinja2를 사용할 경우 현재 어떤 타입을 가지고 있는지 확인할 수 있을까요?결론부터 얘기하면 파이션 타입을 jinja2에서 확인할 수 있는 방법은 현재로는 없습니다. 매우 아쉬운 부분입니다.그 이유를 알아보면 jinja2 자체가 파이썬 언어가 아니므로 파이썬 언어의 모든 타입을 가지고 있지 않아 타입을 출력하는 내부 함수가 존재하지 않습니다.결국 타입 비교는 어려우므로 값을 비교하는 방법이 선택 가능한 최선의 방법입니다.
Last Modified : 2020-05-17 17:51:45