The work that needs to be done
여러분들이 사용자의 이름을 얻기위해 필요한 간단한 폼을, 웹사이트에 생성하고 싶다고 가정해 봅시다.
여러분들은 아마 아래와 같은 코드를, 여러분들의 템플릿 안에 필요로 할것 입니다.
1 | <form action="/your-name/" method="post"> |
위의 간단한 폼을 잠시 둘러보자면,
- 브라우저에게 POST 메서드를 사용하여, 폼 데이터를
/your-name/URL
에 반환하라고 얘기합니다 Your name
으로 레이블 되고,OK
가 쓰여진 버튼을 출력합니다- 만약에 template 에 전달된 context 에
current_name
이라는 변수를 가지고 있다면,your_name
필드를 미리 채우는데에 사용될것입니다.
위의 HTML 폼을 가지고 있는 템플릿을 렌더해줄 뷰가 필요할것 입니다. 그리고, 그 뷰는 current_name 필드를 적절하게 제공해줄수 있습니다.
폼이 제출될때
폼이 제출 될때에는, 폼 데이터를 가지고 있는 POST 요청이 서버에 보내집니다.
요청이 보내졌을때에, /your-name/
URL 과 상응하는 뷰도 필요할것입니다. 이 뷰는 적절한 키/값 페어들을 요청안에서 찾을것이고, 그것들을 처리해줄것 입니다.
정리
위의 예시는, 매우매우 간단한 폼입니다. 실전에서는, 하나의 폼이 10개 혹은 100개의 필드들을 가질수도 있고, 많은것들이 미리 채워져야 할 필요가 있을수 있습니다.
그렇지 않으면, 사용자가 몇번의 수정-제출 을 통해 폼의 동작이 결정될수 있습니다.
우리는 브라우저에서 어떠한 유효성 검사가 필요할지도 모릅니다. 심지어 폼이 제출되기 전에도 말이죠.
사용자들이 날짜를 달력에서 선택하는것 같이 아주 복잡한 필드들을 사용하길 원할지도 모릅니다.
일단, Django 가 이런것들을 위해 기본 작업을 하게 하는것이 훨씬 쉬운 길이 될수 있습니다. (직접 모든것을 구현하려면, 힘듭니다;)