웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > python

Jinja2에서 현재 주소를 출력하는 방법

Last Modified : 2023-11-16 / Created : 2019-02-12
4,603
View Count
Python 언어를 사용하여 웹서버를 구현하는 경우 Jinja2 템플릿 엔진을 많이 사용합니다. 만약 jinja2 템플릿에서 현재 주소를 출력하려고 한다면 어떻게 할까요? 아래에서 알아봅니다.



# Jinja2 템플릿 현재 주소, 파라미터 가져오는 방법


우선 방법은 request 객체에 접근하여 값을 가져오는 방법입니다. request는 페이지 주소와 관련된 정보를 가지고 있습니다. 그래서 url, pathname등 다양한 정보를 얻을 수 있죠. 그럼 예제를 통해 알아봅니다. 만약 아래와 같은 주소가 있다고 생각해봅니다.

현재 주소 - https://webisfree.com/?category=python

이제 각각의 값들을 사용하여 어떤 값이 나타나는지 알아봅니다. request의 프로퍼티의 값인 pathfull_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 등 여러 값들을 출력하는 방법에 대하여 간략하게 알아보았습니다.

Previous

Jinja2에서 숫자 또는 문자로 타입 설정 및 변경 방법

Previous

Python flask에서 디버깅(debug), 중단점(breakpoint) 사용 방법