Django Redireciton

Ryu Honggyu·2024년 8월 27일

Django

목록 보기
13/19
post-thumbnail

리디렉션의 정의

  • Django에서 redirect 함수는 사용자를 다른 URL로 페이지를 이동할 때 사용.
  • views.py 에서 주로 사용됨. 위의 경우 products 앱의 home 페이지로 이동.

기능 정리

기능설명
URL 이름으로 이동Django의 URL 패턴 이름을 사용하여 특정 뷰로 이동할 수 있음.
매개변수를 포함한 이동URL 패턴에 필요한 매개변수를 함께 전달하여 특정 페이지로 이동 가능.
절대/상대 URL로 이동절대 경로나 상대 경로, 또는 완성된 URL을 사용해 이동할 수 있음.
reverse 함수와 함께 사용reverse를 사용해 동적으로 생성한 URL로 이동 가능.
동적 이동쿼리스트링이나 HTTP_REFERER를 사용하여 조건에 따라 동적으로 이동할 수 있음.
이동 후 메시지 전달Django 메시지 프레임워크를 사용하여 이동 시 사용자에게 알림을 전달 가능.
  • reverse 예제: 함수 내 내용에 따라 새로운 URL 을 생성 및 반환. reverse('product_detail', kwargs={'pk': 10}) 일 시 /product/10/ 와 같은 URL을 반환함.

용어 정리

용어설명
절대 경로서버의 루트부터 시작하는 전체 경로를 나타내며, 웹 페이지의 위치를 정확하게 지정.
상대 경로현재 위치를 기준으로 하는 경로를 나타내며, 상대적인 위치를 기반으로 URL을 생성함.
쿼리스트링url 의 ? 뒤에 키-값 쌍으로 입력되어 포함된 추가 데이터.
동적 리디렉션사용자의 이전 페이지(HTTP_REFERER) 또는 쿼리스트링을 기반으로 리디렉션할 URL을 결정함.
  • 쿼리스트링 예제: https://example.com/over/there?name=ferret 일 시 name=ferret 는 쿼리 스트링으로, name 이 'ferret' 이라는 추가 데이터를 url 과 함께 전달한 것.

사용법 정리

기능스크립트
URL 이름으로 이동redirect('home')
매개변수 포함 이동redirect('product_detail', pk=pk)
절대 URL로 이동redirect('/some/url/')
상대 URL로 이동redirect('https://www.example.com/')
reverse와 함께 사용redirect(reverse('product_detail', kwargs={'pk': 10}))
쿼리스트링 이동redirect('/some/url/?param=value')
직전 페이지로 이동HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))

참고 자료

  • Django 공식 문서의 Redirect 설명 [링크]
  • Django 에서 HTTP Redirect 처리 방법 [링크]
  • Query string 위키 문서 [링크]
profile
알고리즘 & 웹 & CS & AI

0개의 댓글