반응형
- pip를 이용해서 'django-seed'를 설치해 주세요.
pip install django-seed
django-seed를 사용하기 위해서는 settings.py의 INSTALLED_APPS 항목에 'django_seed'를 추가해 주어야합니다.
# settings.py ... # Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', 'diary', 'django_seed',
# 추가합니다. ] ...
- 터미널을 열고 django-seed를 이용해서 무작위의 30개 Page 데이터를 생성합니다. manage.py 다음 seed를 적고 데이터를 생성할 앱 이름과 생성할 숫자를 적어 주면 됩니다.python manage.py seed diary --number=30
- 개발 서버를 켜고 일기 목록 보기 페이지로 가면 생성된 데이터를 확인할 수 있습니다. 그런데 보면 감정 점수가 정수형 이긴 하지만 범위가 너무 넓습니다. 이를 해결 하기 위한 validate_pages 함수를 구현해 볼게요.
- diary 앱의 validate_data.py에 validate_pages 함수를 정의합니다.
- 데이터를 조회하기 위해 먼저 Page 모델을 import 합니다.
- 모든 데이터를 가져와서 pages라는 변수에 넣습니다.
- pages를 하나씩 반복하면서 안쪽의 score가 0미만 이거나 10을 초과하는지 확인합니다.
- 만약 0미만 이거나 10을 초과한다면 random 모듈을 이용해 0에서 10사이의 무작위 정수를 생성한 뒤 수정하고 저장합니다.
-
from .models import Page import random # random 모듈 import def validate_pages(): pages = Page.objects.all() for page in pages: if page.score < 0 or page.score > 10: # 만약 범위를 벗어난다면 page.score = random.randint(0, 10) # 0~10 사이의 무작위 정수로 수정하고 page.save() # 저장합니다.
이제 작성한 validate_pages 함수를 한 번만 실행하면 모든 데이터의 score가 알맞게 변경됩니다.
django shell을 실행하고 validate_pages 함수를 import 합니다.
가져온 함수를 실행해서 데이터를 변경합니다.
python manage.py shell
from diary.validate_data import validate_pages
validate_pages()
반응형