[중급편] 장고 Form/ModelForm 제대로 알고 쓰기 (완료)
본 코스는 구독 VOD로 제공됩니다. (구독 확인을 위해 회원가입/로그인이 필요합니다. 구독정책은 구독정책 페이지에서 확인하실 수 있습니다.)
장고의 생산성을 극대화시켜주는 1등 공신은 Django Form
에 있다고 생각합니다. 혹시 본인이 Form
을 써본 적이 없다고 하시나요? admin
페이지를 써보셨다면 당신은 이미 Form
을 써보셨습니다. admin
페이지 내에서의 입력폼
은 Django Form
을 통해서 생성이 된 것입니다.
Django Form을 잘 알고 사용하신다면, 모델 설계만 잘 하시면, 필요한 작업의 50%는 했다고 해도 과언이 아닙니다.
본 코스를 통해 장고 매직
을 경험해보도록 해요. :D
웹브라우저는 Form 태그
를 통해 사용자로부터 입력값을 받아 사용자가 submit 요청을 할 때, 이를 서버로 전송합니다. 웹브라우저 기본 기능으로 간단한 메세지 부터 파일전송까지 모두 전송할 수 있습니다.
HTML Form
의 주요 구성 요소에 대해서 살펴보겠습니다.
29:27 (1회 시청)
View는 FBV/CBV 종류에 상관없이 모두, View 호출 시에는 HttpRequest
객체를 인자로 받으며, View 함수 종료 시에는 반드시 HttpResponse
객체를 반환해야 합니다. HttpRequest
/HttpResponse
를 깊게 이해하는 것은 보다 효율적인 요청처리를 위해 반드시 필요합니다.
40:09 (1회 시청)
Form
을 위한 장고의 기본 보안기능으로서 “사이트간 요청 위조 공격” 을 어느 정도 막아주는 기능이 있습니다. 이 기능에 대해 자세히 살펴보겠습니다.
16:27 (1회 시청)
Model
내역대로 Form
을 쓰고자 하실 때에는 ModelForm
을 사용하시는 것이 보다 간결합니다. Form
을 사용하지만 거의 모든 코드는 Model
코드를 활용하기에, 주요 코드는 Model
을 통해 관리하실 수 있습니다.
48:29 (1회 시청)
Form
의 주요 기능으로서, 사용자로부터의 입력값을 검증하는 기능이 있습니다. 우리가 할 일은 입력값을 검증할 함수만 만들면 됩니다. 로직을 호출하고 유저에게 노출하는 부분은 장고가 알아서 처리해줍니다. Form을 누리세요~
32:21 (1회 시청)
위젯은 필드별 UI요소입니다. 각 Form Field
에는 디폴트 위젯이 지정되어있고, 커스텀 지정도 가능합니다.
위젯 변경을 통해 사용자 편의성을 극대화시켜보세요. :)
22:26 (1회 시청)
각 Form
객체는 웹브라우저 유저 노출을 위해 HTML 포맷
으로 표현되어야합니다. 이를 Render
라 합니다. 그런데 장고의 기본 Renderer는 조금 어글리합니다. 이를 커스텀하는 방법에 대해서 살펴보겠습니다.
39:59 (1회 시청)
매 Form 요청을 처리하고나서 유저에게 피드백을 주는 방법 중에 하나로 Messages Framework
가 있습니다. Messages Framework을 활용하시게 되면, 우리가 할 일은 메세지만 지정하고 활용하기만 하면 됩니다. 나머지 처리는 장고가 처리해줍니다. “로그인 성공”, “삭제 완료” 등의 메세지를 유저에게 손쉽게 노출해보세요.
30:18 (1회 시청)
지금까지 FBV (함수 기반 뷰) 를 통한 Form처리에 대해서 살펴봤는 데요. CBV (클래스 기반 뷰)를 통해 처리하는 다양한 방법에 대해서 살펴보겠습니다.
39:43 (1회 시청)
장고에서 API를 만들 때 django-rest-framework
(이하 DRF) 을 많이를 쓰시는 데요. DRF의 Serializer
가 Form
의 디자인을 그대로 차용했음을 알고 계시나요? Form
과 Serializer
와의 비교를 통해 Form에 대한 이해도를 더욱 높여보겠습니다.
37:01 (1회 시청)