본문 바로가기

Python/Django

[Django] HTTP_REFERER 사용하여 이전 페이지로 가기

728x90

좋아요 같은 기능을 개발할 때 좋아요를 누를 때마다 좋아요가 모여있는 곳으로 이동되면 불편하기 때문에 이전 페이지로 이동하게 됩니다. django에서는 어떻게 구현할 수 있을까요? 바로 HTTP_REFERER를 사용하여 구현할 수 있습니다.

 

우선 HTTP_REFERER는 HTTP 헤더 중의 하나로 HTTP_REFERER에는 현재 표시하는 웹페이지가 어떤 웹페이지에서 요청되었는지에 대한 정보를 가지고 있습니다.

 

예를 들어 [http://www.test.com/] 이하 A, [http://www.test.com/add_like] 이하 B라는 웹페이지가 존재할 때 A에서 B로 이동하게 될 때 HTTP_REFERER에는 A가 저장되게 됩니다.

 

따라서 HTTP_REFERER는 웹페이지 내적으로 이전 페이지로 이동하는 것을 위해 사용하는 게 아니라 웹페이지 외적으로 사용자들이 어떤 홈페이지에서 나의 웹페이지로 왔는지와 같은 기능을 수행하는 것에도 사용할 수 있습니다.

 

다음은 views.py의 코드입니다.

 

def return_previous_page(request):
    url = request.META.get('HTTP_REFERER')
    return redirect(url)

 

요청에 따른 views.py 함수에 다음과 같이 HTTP_REFERER 코드를 추가하여 반환받은 url을 redirect를 통해서 이전 페이지로 이동하게 해 주면 됩니다.

728x90