장고Form vs HTML Form (2021.08.13)

프로젝트 마무리 단계에서 내가 맡은 부분을 복습하다가 깨달은 아주 큰 실수 아닌 실수가 있다.

이번 프로젝트에서는 웹 프레임워크로 장고(Django)를 사용했는데 회원가입 부분에서 장고에서 제공해주는 UserCreationForm을 커스터마이징하여 UserForm을 작성했다. 그리고 사용자에게 데이터를 입력 받는 Form을 HTML에서 작성을 했다.

여태까지 장고(Django)에서 작성한 폼은 Model로 만든 데이터베이스를 채울 때에만 쓰는 줄 알고 HTML에 데이터를 입력받는 Form을 작성했다.

복습하면서 알게된 바로는 Form을 HTML에서 새로 작성할 필요가 없었다. 장고에서 이미 Form을 제공을 해주기 때문에 {{ form.as_table }}만으로도 데이터를 입력받는 Form이 완성되는 것이였다.

<form action="url mapping" method="post">
    {% csrf_token %}
    {{ form.as_table }}
    <input type="submit" value="Submit">
</form>

해당 명령문을 실행하면 아래처럼 구현이 된다.

또한 장고의 Form을 이용시 장고에서 제공하는 valid 기능을 전부 사용이 가능하기 때문에 더 편했을 것이다.

  • 복습 전
    • HTML Form에서 데이터 받고 Django Form에서는 valid 체크만 했다. 물론 Customize가 용이한 입장에서는 나쁘지 않을 것도 같았지만...
  • 복습 후
    • HTML Form에서 데이터 받고 request.POST로 데이터 받은 것을 바로 model의 테이블에 저장가능 → 다만 validation 에러를 만들지 않기 위해서는 validation 체크가 필요!(필수)
    • Django Form 작성 후, HTML에서 form을 제공 받고 그 form을 이용하여 데이터 받은 후, Django의 valication check 기능을 사용한 후 validate하면 model의 테이블에 저장!
    • Django도 매우 편리하지만, HTML은 css로 꾸미기가 용이하기 때문에 각각의 장단점이 있다.

좋은 웹페이지 즐겨찾기