[Flask] redirect() vs render_template() 차이점, 다른점 🤷‍♂️

mason.98·2021년 12월 10일
0

Flask

목록 보기
10/10

📂 redirect('함수', val=val)

URL에 적어서 함수에게 302 헤더를 반환한다. 302 설명은 밑에서!

보통 /a주소에서 데이터를 처리하는 과정만 거치고,
결과를 /b주소에서 보여주거나 할 때 응용된다.


📂 render_template('*.html', val=val)

템플릿(.html)과 함께 200을 반환한다.


예시 👀

ex) 도메인주소 : www.test.com
    # ex) 1번 함수
    @bp.route('/')
    def index():
   	return redirect('save')

    # ex) 2번 함수
    @bp.route('/save/')
    def save():
    	render_template('save.html')

설명 👀

도메인 주소에 1번 함수의 URL('/')을 추가한 www.test.com/ 입력 시,
redirect 함수가 save라는 이름을 가진 2번 함수(save)로 redirect 된다.


save로 redirect 의 뜻은 2번함수로 이동된다는 것이다.
2번함수의 URL은 www.test.com/save/이며, save.html을 렌더링하고 있기 때문에
사용자의 URL을 www.test.com/save로 바꾸면서 save.html을 보여준다.


따라서 사용자의 입장에서 www.test.com/을 입력한다면,
URL이 자동으로 www.test.com/save/로 바뀌면서 save.html이 보여지게 된다.


📂 HTTP 302(일시적인 이동)
페이지가 일시적으로 다른 주소로 이동됨을 의미한다.


📌 302의 단점
페이지의 무게(web-site weight)를 전달하지 않는다는 것이다.
그 결과, 사이트는 외부링크주스(external link juice)페이지의 무게(web-site weight)를 잃는다.

  • web-site weight(=page size) : 무게가 무거울수록 페이지 렌더링이 느려진다.
  • link juice : 다른 페이지로 전달되는 가치나 자산을 나타내는 용어이다.
    링크주스가 많을수록 검색결과 순위에서 높게 나온다.
  • backlink : A사이트가 B사이트를 언급하면서 B사이트로 연결해주는 링크를 말한다.
    ex) 하이퍼링크로 된 출처 URL

📌 302가 필요한 케이스

  • 웹사이트에서 기술적인 작업을 하는 동안
  • 개발자가 페이지 변경 없이 다른 자료들을 사용자들에게 보여주길 원할 때
  • 호스팅할 때 금지된 컨텐츠를 볼 경우, 사용자들의 페이지를 닫기 위해
  • 특정도메인의 트래픽이 일시적으로 다른 리소스로 리다이렉션 되는 경우

[stakoverflow] Difference between render_template and redirect?
The Difference Between 200, 301, 302, 304, 404 Status Codes
LinkJuice
링크주스란?

profile
wannabe---ing

0개의 댓글