220210 TIL

TIL DAY 175

오늘 배운 일

✔️ Django 웹 개발

1. 더 많은 시드 데이터가 필요하다면?

저번에 이런 JSON 형식으로 데이터 파일을 만들고...

loaddata 를 이용해서 데이터베이스에 데이터를 넣어줬었다.

그런데 이렇게 데이터 파일을 만들 때 생각해야 될 것이 있는데 기본적으로 위의 코드에서 pk 같은 경우에는 각 데이터마다 중복되지 않아야 하고 필드마다 필드에 타입을 맞춰서...

문자열이면 이렇게...

날짜면 이렇게...

그리고 이메일이면 이메일 형식으로 맞춰서 넣어줘야 한다.

앞서 우리가 했던 내용대로 한 두개의 데이터라면 직접 입력할 수 있지만, 이런 식으로 데이터 필드가 늘어나고 입력해야 되는 데이터가 많아지면 쉽지 않은 작업이 될 것이다.

다양한 데이터 필드를 포함한 대량의 데이터를 생성해야 할 때 유용하게 사용할 수 있는 패키지가 바로 django-seed 이다.

django-seed 는

  • 모델에 정의된 각각의 필드를 보고 임의의 데이터를 자동으로 생성해 주는 패키지이다.
  • 매우 직관적이며 쉽게 사용할 수 있는 패키지이다.

한 번 설치해보자!

새로운 터미널을 키고 다음과 같이 커맨드를 입력해준다.

pip install django-seed

다 설치가 완료되었다면 costory 폴더 안에 settings.py 로 가서...

INSTALLED_APPS 에 django_seed 를 추가해 주도록 하겠다.

settings.py

이렇게만 해주면 설치와 설정이 모두 끝나게 되는데 생각보다 간단하다.

그럼 다시 터미널로 가서 다음과 같이 커맨드를 입력해준다.

python3 manage.py seed posts --number=50

엔터를 치면 이렇게 50개의 데이터가 생겼다고 나옵니다.

그러면 개발 서버를 키고 확인해보자!

실행해보면 이런 식으로 랜덤한 데이터가 쭉 들어와있는 것을 확인할 수 있다.

지금은 50개의 데이터만 생성했지만 필요하다면 100개든, 200개든 임의의 데이터도 쉽게 생성할 수 있다.

이번에는 django-seed 패키지를 이용해서 시딩하는 방법에 대해 알아보았다.

이제 전처럼 일일이 데이터를 입력하지 않아도 임의의 테스트 데이터를 마음대로 생성할 수 있어서 편리하다.

하지만 사용할 때 한 가지 주의할 점이 있다.

django-seed 를 이용하면 모델 필드에 데이터를 타입에 맞는 데이터를 생성해 주긴 하지만 유효성 검증은 거치지 않는다.

우린 알다시피 모든 데이터는 반드시 유효성 검증을 마친 데이터여야 하는데 이 부분이 수행되지 않은 것이다.

따라서 문자열 같은 일반적인 데이터는 django-seed 를 이용해도 되지만 까다로운 유효성을 요구하는 테스트 데이터는 별도로 관리를 해주어야 한다.

끝으로 :

  • 오늘은 django-seed 라는 패키지를 사용하면 여러개의 데이터를 쉽게 생성할 수 있어서 편리하다.
  • 하지만 늘 완벽해 보이는 것도 흠이 있다는게 문제여서 잘 파악해서 사용해야 겠다.

좋은 웹페이지 즐겨찾기