IT-HONGREAT / django_food_project

꾸준히 공부하며 진행하는 사이드 프로젝트입니다.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Data validations

IT-HONGREAT opened this issue · comments

유효성 검증이란?

데이터가 입력 될 때 정해진 틀과 양식을 지켜야한다.

  • 두 가지 방식이 존재함

    • field를 정의 할 때 필요한 옵션을 달아주기
    • validator 를 추가하기
  • (참고)null VS blank 의 차이

    • null : 빈 값을 null로 저장하는 것을 허용
    • blank : 문자열기반의 필드에서 True 로 하면 빈 문자열이 저장된다.

Validator (유효성검사기의 역할)

임의의 값을 받아서 내부의 기준을 충족하지 않으면 Validation Error를 발생시키는 함수이다.

django에서 제공하는 bulit-in validator 공식문서 및 참고

Validators | Django documentation | Django

  • django.core.validators 를 불러와서 원하는 필드에 validators옵션을 추가해준다.

image

  • 실행후 정상적으로 에러메세지를 볼 수 있다.

image

Writing validator

  • django 의 bulit in 이 아닌, 직접 validators 파일을 만들고 함수를 생성해서, 조건문을 통과함에 따라 에러를 발생시켜준다

    공식문서 상단에 친절하게 코드 양식까지 잘 나와있다.

image

위의 사진에서 보면 content 칸에 아무 텍스트나 넣을 수 있게 되어있다.

이 부분에 숫자만 입력하지 않게 하고 싶지않았다.(내가 귀찮으면 숫자만 대충 입력하기 때문에)

직접 validator를 만들어 보고 싶기도 했고, 감성분석(자연어)에 활용 가능한 내용 일 수 도 있기에 파일생성.

validators 파일을 만들고 django.core.exceptions 의 ValidationError를 불러온다.

맨 처음 코딩하며 알고리즘 문제 풀 때 사용한 isdigit함수를 사용해봤다. 그리고 에러메세지를 입력해줬다.

image

  • 파일의 함수를 import 하고, 아까 작성한 validators의 옵션으로 추가해준다.

image

  • 정상적으로 에러가 raise 되었다.

image

End issue.