render() 함수

Andromeda_Galaxy·2024년 5월 19일

Django

목록 보기
2/12

render() 함수

render( request, template_name, context=None, content_type=None, status=None, using=None )

  • 인자로 주어진 템플릿을 사전형(dict) 인자인 context와 결합해서 렌더링을 거친 다음 HttpResponse 객체로 반환하는 함수
  • 인자로 넘겨주는 템플릿과 context 데이터를 합쳐서 HttpResponse 객체로 돌려주는 함수

필수인자

request

  • 데이터를 요청한 요청 객체를 넘겨줌
  • 요청에 대한 정보에 접근해서 user, session 등 여러 가지 기능을 구현하기 위해

template_name

  • 렌더링에 사용할 대상 템플릿을 명시

선택 인자

context

  • 템플릿에 추가할 값들이 들어 있는 사전형 인자
  • 기본값은 아무것도 없는 None

content_type

  • 결과로 만들어 내는 문서의 유형
  • 기본값은 'text/html' 즉 HTML 웹 페이지

status

  • 상태 코드(Status Code) 값
  • 기본값은 200(성공)

using

  • 템플릿을 렌더하는 템플릿 엔진을 지정할 수 있는 인자
  • 원하는 경우 다른 템플릿 엔진을 사용하여 템플릿을 렌더링할 수 있음

공식문서

상태코드(Status Code)

  • 클라이언트 요청에 대한 처리가 성공했는지 실패했는지에 대해 알려주는 코드

1XX (정보 전달)

  • 100 (진행, Continue)
    • 요청의 첫 부분을 받아서 다음 요청을 기다리고 있음
    • 이미 요청을 완료했다면 해당 응답을 무시할 수 있음
  • 101 (프로토콜 전환, Switching Protocol)
    • 클라이언트가 서버에게 프로토콜 전환을 요청했고 서버에서 프로토콜을 변경함

2XX (성공)

  • 200 (성공, OK)
    • 클라이언트의 요청이 성공적으로 처리
  • 201 (작성됨, Created)
    • 요청이 성공적으로 처리되어 새로운 리소스를 생성
  • 202 (허용됨, Accepted)
    • 서버가 성공적으로 요청을 받았지만 아직 처리 전인 상태
  • 203 (신뢰할 수 없는 정보, Non-Authoritative Information)
    • 서버가 성공적으로 요청을 처리했지만 요청에 포함된 정보가 다른 곳에서 수정된 정보
  • 204 (콘텐츠 없음, No Content)
    • 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않는다는 것을 의미
  • 205 (콘텐츠 재설정, Reset Content)
    • 요청을 성공적으로 처리했고 콘텐츠를 제공하지 않으며 클라이언트가 문서 보기를 재설정할 것을 요구

3XX (리다이렉션)

  • 300 (여러 개의 선택 항목, Multiple Choice)
    • 요청에 대해 서버가 여러 응답이 가능하며 하나를 선택해야 함을 의미
  • 301 (영구 이동, Moved Permanently)
    • 요청한 리소스가 새로운 위치로 영구 이동
    • 클라이언트는 자동적으로 새로운 위치로 전달됨
  • 302 (임시 이동, Found)
    • 요청한 리소스가 일시적으로 이동했음
    • 향후 다시 해당 리소스를 요청할 때도 동일한 주소로 해야함을 의미
  • 304 (수정되지 않음, Not Modified)
    • 마지막 요청 이후 요청한 리소스는 수정되지 않았음
    • 서버가 콘텐츠를 전달하지 않음
    • 클라이언트는 이전에 전달받은 결과를 계속해서 사용할 수 있음

4XX (실패)

  • 400 (잘못된 요청, Bad Request)
    • 클라이언트의 요청을 서버가 이해할 수 없다는 것을 의미
  • 401 (권한 없음, Unauthorized)
    • 클라이언트가 해당 요청에 대한 응답을 받기 위해서는 추가적인 인증이 필요하다는 것을 나타냄
  • 402 (결제 필요, Payment Required)
    • 이 요청을 결제가 필요하다는 것을 의미
    • 현재는 사용되고 있지 않음
  • 403 (금지됨, Forbidden)
    • 클라이언트가 요청한 리소스에 접근할 권한이 없음
    • 401과 다른 점은 서버는 해당 클라이언트에 대한 정보를 가지고 있음
  • 404 (찾을 수 없음, Not Found)
    • 클라이언트가 요청한 리소스를 서버가 찾을 수 없다는 것을 의미

5XX (서버 오류)

  • 500 (내부 서버 오류, Internal Server Error)
    • 서버에서 오류가 발생하여 요청한 작업을 수행할 수 없다는 것을 의미
  • 501 (구현되지 않음, Not Implemented)
    • 클라이언트가 요청한 방법을 서버에서 수행할 수 있는 기능이 없다는 것을 의미
  • 502 (잘못된 게이트웨이, Bad Gateway)
    • 서버가 요청을 처리하는데 필요한 작업 중 게이트웨이로부터 잘못된 응답을 받았다는 것을 의미
  • 503 (서비스를 사용할 수 없음, Service Unavailable)
    • 서버가 해당 요청을 처리할 준비가 되지 않았으며 일반적으로는 유지관리를 위해 작동이 중단되거나 과부하가 걸렸을 때를 나타냄
    • 보통 일시

추가정보

profile
안녕하세요.

0개의 댓글