Python 언어를 사용하여 웹서버를 구현하는 경우
Jinja2 템플릿 엔진을 많이 사용합니다.
만약 jinja2 템플릿에서 현재 주소를 출력하려고 한다면 어떻게 할까요? 아래에서 알아봅니다.
# Jinja2 템플릿 현재 주소, 파라미터 가져오는 방법
우선 방법은
request 객체에 접근하여 값을 가져오는 방법입니다.
request는 페이지 주소와 관련된 정보를 가지고 있습니다. 그래서 url, pathname등 다양한 정보를 얻을 수 있죠. 그럼 예제를 통해 알아봅니다. 만약 아래와 같은 주소가 있다고 생각해봅니다.
현재 주소 - https://webisfree.com/?category=python
이제 각각의 값들을 사용하여 어떤 값이 나타나는지 알아봅니다. request의 프로퍼티의 값인
path와
full_path를 출력해보려고 합니다. 이 경우
출력을 위해서 {{ }} 블록을 가지는 Jinja2의 표현식을 사용할 수 있겠습니다.
{{ request.path }}
{{ request.full_path }}
각각 출력 결과는 아래와 같습니다. 현재 path와 전체 path 정보를 출력해줍니다.
/
/?category=python
이처럼 path, full_path 이외에도 다양한 값들의 정보를 얻을 수 있습니다.
//
path :
해당하는 path 경로를 반환//
full_path :
요청된 url로 전제 주소를 반환함//
method :
HTTP 요청된 메소드를 출력(GET, POST, DELETE 등등)//
args :
쿼리 매개변수 등의 정보//
form :
POST, PUT을 사용해 body에 전달된 폼 데이터//
headers :
요청된 헤더 정보//
cookies :
요청된 쿠키 정보//
files :
파일 데이터 정보
이 외에도 서버로 요청된 다양한 정보들을 얻을 수 있습니다. 아래에는 추가로 간단한 예제를 하나 만들어 보겠습니다.
! Jinja2 파라미터 값 가져오기
위의 주소는 뒤에 쿼리스트링 정보를 가지고 있습니다. 해당하는 파라미터 값 역시 가져올 수 있는데요 이 경우
arguments 값을 가져오기 위해 아래와 같이 args.get()을 사용합니다.
{{ request.args.get('category') }}
위의 주소는 category 값으로 python을 가지고 있었습니다. 주소를 보니
https://webisfree.com/?category=python입니다. 아래는 위 코드의 출력 결과입니다.
python
예상과 같이 python 값이 출력된 것을 확인할 수 있습니다.
여기까지 Jinja2를 사용하여 url, pathname 등 여러 값들을 출력하는 방법에 대하여 간략하게 알아보았습니다.