Django : Form

김재훈·2024년 3월 27일

Django

목록 보기
6/15

HTML 'form'

  • 지금까지 사용자로부터 데이터를 받기 위해 활용한 방법
  • 그러나 비정상적 혹은 악의적인 요청을 필터링 할 수 없음

    유효한 데이터인지에 대한 확인이 필요

CSRF

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

유효성 검사

  • 수집한 데이터가 정확하고 유효한지 확인하는 과정
  • 유효성 검사를 구현하기 위해서는 입력 값, 형식, 중복, 범위, 보안 등 많은 것들을 고려해야 함
  • 이런 과정과 기능을 직접 개발하는 것이 아닌 Django가 제공하는 Form을 사용

Django Form

  • 사용자 입력 데이터를 수집하고, 처리 및 유효성 검사를 수행하기 위한 도구

    유효성 검사를 단순화하고 자동화 할 수 있는 기능을 제공

  • "사용자로부터 데이터를 수집하고 처리하기 위한 강력하고 유연한 도구"
    • HTML form의 생성, 데이터 유효성 검사 및 처리를 쉽게 할 수 있도록 도움
  1. forms.py에 forms 메서드를 불러와서 클래스로 양식을 만듦

  2. View 함수에 forms.py에서 작성한 클래스의 인스턴스를 생성하고 context에 넣어줘서 templates로 보내줌

Form rendering options

  • label, input 쌍을 특정 HTML 태그로 감싸는 옵션
  • as_div, as_table, as_p, as_ul

Widgets

Django ModelForm

FormModelForm
사용자 입력 데이터를 DB에 저장하지 않을 때사용자 입력 데이터를 DB에 저장해야 할 때
ex) 로그인ex) 게시글 작성, 회원가입

Meta Class

  • ModelForm의 정보를 작성하는 곳
  • 메타데이터 : 데이터에 대한 데이터

'fields' 및 'exclude' 속성

  • exclude 속성을 사용하여 모델에서 포함하지 않을 필드를 지정할 수도 있음

is_valid()

  • 여러 유효성 검사를 실행하고, 데이터가 유효한지 여부를 Boolean으로 반환

save()

  • 데이터베이스 객체를 만들고 저장

Handling HTTP requests

newcreate
데이터 생성을 구현데이터 생성을 구현
GET method 요청 처리POST method 요청 처리

1개의 댓글

comment-user-thumbnail
2024년 3월 29일

멋있어요

답글 달기