두가지 URL 형식에 대해서 비교를 하며 알아보겠습니다.
- http://localhost:8000/read/1/
- http://localhost:8000/read/?id=1
아래 방식은 예전에 사용하던 방식으로 URL 마지막 부분을 query string이라고 부릅니다.(질의하는 방식)
둘 다 데이터를 브라우저가 서버로부터 요청하는 GET 하는 방식이라는 본질은 같습니다.
GET과 POST
아래 URL은 Django를 이용해 create를 생성시킨 주소입니다.
- http://127.0.0.1:8000/create/?title=CRUD&body=CRUD+is+...
위 URL은 브라우저가 서버에 있는 데이터를 변경하려는 작업입니다. 만약 이 URL을 복사하여 다른 곳에 공유하게 된다면 URL을 누를때마다 create라는 작업을 계속 수행하게 되는 것입니다. 이를 막기 위해 POST를 사용하는 것입니다.
기존 서버로 전송되는 Request Method: GET 입니다. 이를 막기위해 <form> 형식에 method="POST"를 추가해주면 POST로 변경이 됩니다.
<form action="/create/" method="POST">
위와 같이 변경하면 URL이 "http://127.0.0.1:8000/create/" 로 변경되는 것을 볼 수 있습니다.
'Django' 카테고리의 다른 글
[Django] django를 쓰는 이유 (0) | 2022.01.28 |
---|---|
[Django] Routing (0) | 2022.01.28 |
[Django] 전체적인 경로 흐름 (0) | 2022.01.28 |