Django : ORM (Template)

김재훈·2024년 3월 31일

Django

목록 보기
8/15

HTTP request methods

  • 데이터(리소스)에 어떤 요청(행동)을 원하는지를 나타내는 것
  • 조회는 데이터가 url로 보내지지만, post는 HTTP의 body에 보내짐
GETPOST
데이터 전송 방식URL의 Query string parameterHTTP body
데이터 크기 제한브라우저 제공 URL의 최대 길이제한 없음
사용 목적데이터 검색 및 조회데이터 제출 및 조작

'GET' Method

  • 특정 리소스를 조회하는 요청
  • 데이터를 전달할 때 URL에서 Query String 형식으로 보내짐

http://127.0.0.1:8000/articles/creat/?title=제목&content=내용

  • GET 요청이 필요한 경우
  • 케싱 및 성능
    • GET 요청은 캐시(Cache)될 수 있고, 이전에 요청한 정보를 새로 요청하지 않고 사용할 수 있음
    • 특히, 동일한 검색 결과를 여러 번 요청하는 경우 GET 요청은 캐시를 활용하여 더 빠르게 응답할 수 있음
  • 가시성 및 공유
    • GET 요청은 URL에 데이터가 노출되어 있기 떄문에 사용자가 해당 URL을 북마크하거나 다른 사람과 공유하기 용이
  • RESTful API 설계
    • HTTP 메서드의 의미에 따라 동작하도록 디자인된 API의 일관성을 유지할 수 있음

캐시(Cache)

  • 데이터나 정보를 임시로 저장해두는 메모리나 디스크 공간
  • 이전에 접근한 데이터를 빠르게 검색하고 접근할 수 있도록 함

'POST" Method

  • 특정 리소스에 변경 (생성, 수정, 삭제)을 요구하는 요청
  • 데이터는 전달할 때 HTTP Body에 담겨 보내짐

HTTP response status code

  • 특정 HTTP 요청이 성공적으로 완료되었는지를 3자리 숫자로 표현하기로 약속한 것

403 Forbidden

  • 서버에 요청이 전달되었지만, 권한 때문에 거절되었다는 것을 의미
  • 거절된 이유
    • "CSRF token이 누락되었다"라는 응답

CSRF (Cross-Site-Request-Forgery)

  • "사이트 간 요청 위조"
  • 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 특정 웹페이지를 보안에 취약하게 하거나 수정, 삭제 등의 작업을 하게 만드는 공격 방법

redirect

  • 클라이언트가 인자에 작성된 주소로 다시 요청을 보내도록 하는 함수
    • 게시글을 "조회해줘!"라는 요청이 아닌 "작성해줘!"라는 요청이기 때문에 게시글 저장 후 페이지를 응답하는 것은 POST 요청에 대한 적절한 응답이 아님
  • 다른 페이지로 사용자를 보내야 함.
    redirect()
from django.shorcuts import render,redirect`

def create(request):
	...
    return redirecwt('articles:detail', article.pk)
  • 해당 redirect에서 클라이언트는 detail url로 요청을 다시 보내게 됨
  • 결과적으로 detail view 함수가 호출되어 detail view 함수의 반환 결과인 detail 페이지를 응답 받음
  • 결국 사용자는 게시글 작성 후 작성된 게시글의 detail 페이지로 이동하는 것으로 느끼게 되는 것

Delete

Update

0개의 댓글