반응형

0. 들어가기

-. 이전 포스팅에서 Flask로 웹서버를 구성, Jinja로 웹 UI를 구성하기로 했다. 그리고 template engine Jinja의 간단한 사용법을 알아봤는데, 오늘은 Flask + jinja 구조로 html 페이지를 띄우는 방법에 대해 알아보겠다.

1. 사용 방법

-. Flask에서의 jinja engine은 앞서 Flask 포스팅에서 멋도 모르고 import 한 render_template으로 실행된다.

1) 코드 기본구조

from flask import Flask, render_template

app = Flask(__name__)


@app.route("/jinja2/base")
def page_jinja2_base():
    return render_template("base.html")


@app.route("/jinja2/child")
def page_jinja2_child():
    return render_template("child.html")
    

if __name__ == "__main__":
app.run(debug=True)

-. base.html과 child.html은 Jinja 예문의 것을 그대로 따옴.

2) 실행 결과

<(좌) Jinja template (input)과 (우) html 출력 (output) 비교>

-. 위 출력결과를 보면, base.html input/output은 동일한 구조의 html 파일이란 것을 알 수 있다.
-. 반면, base.html의 extends로 적용 된 child.html은 input이 매우 간단한, 십여 줄의 코드인 반면 output은 두 배 길이의 html 스크립트로 출력된다.

2. jinja 구조

-. jinja 설명 페이지에 전부 있는건데, 내 스스로 꼼꼼히 볼 겸 정리한다.

  • {% ... %} for Statements -> jinja 자체 스크립트 실행 (loop 구문이 여러개 있다.)

  • {{ ... }} for Expressions to print to the template output -> template에 지정한 변수 넣기.

  • {# ... #} for Comments not included in the template output -> html 출력이 되지 않는, jinja 내 주석처리 구문

  • #  ... ## for Line Statements -> 조금 헷갈리게 설명이 되어있다. jinja2의 environment 설정에서 코드 간결화를 위한 설정이 가능함. 일단 쓸 일 없으니 패스.

3. 결론.

-. 파이썬은 날먹 명제에 가장 걸맞는 구조는 Flask 서버 + jinja 결합인 것 같다.

 

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