Sparta Coding Club/Today I Learned [TIL]

[TIL] #DAY - 067 - 더미 생성하기 (Django, django-seed)

양한마리 2022. 12. 8. 04:14
728x90



추천 시스템 프로젝트를 하다보니 추천해줄 유저나 상품등등 데이터가 풍부해야하는데...

하나하나 다만들자니 너무 힘들어서 찾아보다보니 랜덤한 더미 유저를 만들수있는 django-seed를 발견하여 이렇게 남겨본다!




 

from django.core.management.base import BaseCommand
from users.models import User
from django_seed import Seed
import random

class Command(BaseCommand):
    
    # --number 추가 기입하면 해당 숫자만큼 더미유저를 생성
    def add_arguments(self, parser):
        parser.add_argument(
            "--number", default=1, help= "How many do you want Create User"
        )
    
    def handle(self, *args, **options):
        number = int(options.get("number"))
        seeder = Seed.seeder()
        cities = ['서울특별시',
            '인천광역시',
            '부산광역시',
            '대구광역시',
            '인천광역시',
            '광주광역시',
            '대전광역시',
            '울산광역시',
            '세종특별자치시',
            '경기도',
            '강원도',
            '충청북도',
            '충청남도',
            '전라북도',
            '전라남도',
            '경상북도',
            '경상남도',
            '제주특별자치도']
        r_city = random.choice(cities)
        r_height = random.choice(list(range(140,210)))
        r_weight = random.choice(list(range(35,150)))
        
        # 더미 유저를 만들어주는 코드 {} 안에 들어가는 값은 랜덤하지 않은 내용을 넣고싶을때 넣어주는 부분
        seeder.add_entity(User, number, {
            "address":r_city,
            "gender": random.choice(['M','W']),
            "height":r_height,
            "weight":r_weight,
            "term_agree":True,
            "click_time":None,
            "is_admin":"0",
            "password":"password"
        })
        seeder.execute()
        
        self.stdout.write(self.style.SUCCESS(f"{number} 명의 더미 유저 생성 완료!"))

실행해보니 1만명 이상 유저를 만들면 조금 오래걸리는거같다.

그 이하로는 문제없이 돌아가는듯!

728x90
반응형