작성 이유 : 웹개발 공부 도중 강의 내용이 jinja2를 사용해서 왜 하필 jinja2를 사용하는지 의문이 들었다.
요약 :
웹페이지 종류에는 정적-static, 동적 웹페이지(SSR,CSR)-templates , jinja2 SSR에 포함되는 파이선의 flask 프레임워크의 서버사이드 템플릿 언어. 그래서 우리가 jinja2를 사용한 것임.
서버 사이드 템플릿 언어 중 아파치 서버와 자주 사용하는 php가 템플릿언어였다. 생각하면 맞다. 서버에서 동적으로 처리하기 위해서 php로 넘겼으니까.
Flask는 파이썬 기반 웹 프레임워크중 하나이다. 자바가 아닌 파이썬으로도 웹 서버를 만들 수 있다는 의미이다.
자바 기반 웹 프레임워크로는 대표적으로 Spring이 있듯이, 파이썬 기반 웹 프레임 워크로는 대표적으로 Flask, Django가 있는 것이다.
1)정적 웹페이지 :
2)동적 웹페이지 :
정리함 : https://velog.io/@sago_mungcci/CSR-SSR%EC%9D%B4%EB%9E%80
Flask는 파이썬 기반 웹 프레임워크중 하나이다. 자바가 아닌 파이썬으로도 웹 서버를 만들 수 있다는 의미이다.
자바 기반 웹 프레임워크로는 대표적으로 Spring이 있듯이, 파이썬 기반 웹 프레임 워크로는 대표적으로 Flask, Django가 있는 것이다.
앞에서 언급했듯이, 파이썬 기반으로 웹 개발을 하고싶을 때 사용할 수 있다. 파이썬이 back-end쪽을 담당하고 HTML, CSS, JAVASCRIPT이 Front-end쪽을 담당하게 하는식으로 구현하여 웹 프로젝트를 수행할 수 있다.
웹 템플릿 엔진(Web Template Enging)이란?
웹 문서가 출력되는 템플릿 엔진을 말한다. 즉, 웹 템플릿 엔진은 웹 템플릿들(Web Templates)과 웹 컨텐츠 정보(Content Information)를 처리하기 위해 설계된 소프트웨어이고 웹 템플릿 엔진은 View Code(Html)와 Data Logic Code(Db Connection)를 분리해주는 기능을 합니다.
재사용성이 높다.
웹페이지 혹은 웹앱을 만들 때 똑같은 디자인의 페이지에서 보이는 데이터만 바뀌는 경우가 많다.한 페이지를 템플릿 엔진 문법으로 만들어 놓고 여기에 데이터를 바꿔가면서 렌더링을 해주면 수 백의 페이지들을 나타낼수 있다.
템플릿 엔진을 사용하면 동일한 템플릿을 사용한다는 전제하에 템플릿과 넘겨주는 데이터만 수정하면 된다.
대부분의 템플릿 엔진은 기존의 HTML에 비해서 간단한 문법을 사용한다. 코드가 길어지면 길어질 수록 템플릿 엔진을 사용하면 좋다.
출처: https://usefultoknow.tistory.com/entry/템플릿-엔진Template-Engine-이란 [UsefulToKnow:티스토리]
Jinja2는 파이썬에서 가장 많이 사용되는 템플릿 엔진 중 하나이다. Django의 템플릿 시스템에서 영감을 얻었지만 템플릿 작상자에게 더 강력한 도구 세트를 제공하는 표현 언어로 확장했고 보안이 중요한 애플리케이션을 위해 샌드박스 실행 및 선택적 자동 이스케이프를 추가했다.
Flask 템플릿 렌더링 방법
기본적으로 Flask는 애플리케이션 폴더 안에 위치한 templates 서브폴더에서 템플릿을 검색한다. 그 곳에 위치한 HTML 파일을 이용하여 렌더링 한다.
참고 자료 : https://stackshare.io/stackups/jinja-vs-php
참고 자료 : https://ddaaadd.tistory.com/276
참고 자료 : https://usefultoknow.tistory.com/entry/%ED%85%9C%ED%94%8C%EB%A6%BF-%EC%97%94%EC%A7%84Template-Engine-%EC%9D%B4%EB%9E%80