반원 블로그

Flask 자료 정리 06 - JinJa2의 파일 렌더링 Enviroment와 FileSystemLoader 본문

2018~/Flask 자료 정리

Flask 자료 정리 06 - JinJa2의 파일 렌더링 Enviroment와 FileSystemLoader

반원_SemiCircle 2019. 10. 12. 01:15

추가적인 jinja2 이용법 - Enviroment와 FileSystemLoader : 파일 렌더링(ex : txt파일)

  • 어떤 파일 형식까지 지원해주는지는 추가로 찾아봐야한다.
  • 출력결과

예제 05/01.py

from jinja2 import Environment, FileSystemLoader

file_loader = FileSystemLoader('templates')

env = Environment(loader=file_loader)

template =  env.get_template('test.txt')

print(template.render())
"""
설명
3 : 템플릿 디렉토리를 FileSystemLoader를 통해 가져온다.

5 : 매개변수에 들어온 것의 환경을 로드(구성)한다.

7 : 해당 환경에서 test.txt라는 파일을 템플릿으로 가져온다.
jinja는 html뿐 아니라 txt도 렌더링이 가능하다.
"""

예제 05/templates/test.txt

Hello~ Flask~ Python~

텍스트 파일에 jinja 템플릿 엔진 이용해보기 1

  • 출력결과

예제 05/templates/test_jinja.txt

{{userName}}은 경험치 {{exp}} xp를 소유.

예제 05/02.py


from jinja2 import Environment, FileSystemLoader

file_loader = FileSystemLoader('templates')

env = Environment(loader=file_loader)

template =  env.get_template('test_jinja.txt')

print(template.render(userName="반원",exp=900))
"""
설명
7 : jinja2 템플릿 표현식이 적힌 파일 test_jinja.txt를 가져온다.
9 : jinja2 템플릿의 표현식이 적힌 곳에 변수 값을 전달한다.
"""

텍스트 파일에 jinja 템플릿 엔진 이용해보기 2 : 객체 이용

  • 출력결과

예제 emplates/test_jinja2.txt

{{data.userName}}은 경험치 {{data.exp}} xp를 소유.
돈은 {{data.money}}를 소지.
설명
전달받은 data의 userName, exp, money 속성이 각각의 자리로 들어간다.

예제 05/03.py


from jinja2 import Environment, FileSystemLoader

file_loader = FileSystemLoader('templates')

env = Environment(loader=file_loader)

template =  env.get_template('test_jinja2.txt')

user = {}
user['userName'] = "반원"
user['exp'] = 900
user['money'] = 5000

print(template.render(data=user))
"""
설명
9 ~ 12 : 딕셔너리도 객체로 만들어진 데이터
14 : 인스턴스를 매개변수로 입력한다.
"""
Comments