Jinja2 template

해롱그·2023년 8월 8일

sw사관학교 정글

목록 보기
2/6

jinja2

  • python flask 패키지에 내장된 템플릿 엔진
  • 동적 웹 페이지를 쉽게 구현 가능
  • 고정적으로 출력되어야 할 서식 html코드가 존재, 동적으로 변해야 할 자리는 jinja2문법으로 비워둠
  • 이후 클라이언트가 웹 브라우저를 통해 엔드포인트(/sample)에 접근하면, 비워둔 자리에 값을 설정하여 클라이언트에게 출력. 이처럼 고정 & 변화를 쉽게 할 수 있다는 장점이 있음

jinja 템플릿 문법

  • {{...}} : 변수나 표현식의 결과를 출력하는 구분자
  • {%...%} : if문이나 for문 같은 제어문을 할당하는 구분자
    ( 구분자 : jinja 템플릿 문법임을 구분하는 용도 )

기존 ajax를 이용해서 하던 방법과 jinja2 템플릿을 사용할 때와 다른 부분을 비교해보기!

<기본 구조>

# 기존 ajax
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
    $(document).ready(function () {
        get_list()
    })

    function get_list() {
        $.ajax({
            type: "GET",
            url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99",
            data: {},
            success: function (response) {
                let rows = response["RealtimeCityAir"]["row"];
                console.log(rows)
            }
        })
    }
</script>
#jinja2
// requests 요청 보내기
r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
response = r.json()
rows = response['RealtimeCityAir']['row']
// 렌더링할 html에 미세먼지 정보 보내기
return render_template("index.html", name=name, rows=rows)
profile
사랑아 컴퓨터해 ~

1개의 댓글

comment-user-thumbnail
2023년 8월 8일

잘 봤습니다. 좋은 글 감사합니다.

답글 달기