11월 07일 원티드 프리온보딩 백엔드 12일차 TIL

django custom command

:one: 진행상황

  • 서울시 하수관 및 강우량 모델 설계

:two: 진행상황리뷰

# data/models.py

class Sewer(models.Model):
    idn = models.CharField()
    gubn = models.CharField()
    gubn_nam = models.CharField()
    remark = models.CharField()


class Sewage(models.Model):
    sewer = models.ForeignKey(Sewer, on_delete=models.CASCADE)
    mea_ymd = models.DateTimeField()
    mea_wal = models.DecimalField()
    sig_sta = models.CharField()


class Rainguage(models.Model):
    rainguage_code = models.SmallIntegerField()
    rainguage_name = models.CharField()
    gu_code = models.SmallIntegerField()
    gu_name = models.CharField()


class Rainfall(models.Model):
    rainguage = models.ForeignKey(Rainguage, on_delete=models.CASCADE)
    rainfall10 = models.FloatField()
    recieve_time = models.DateTimeField()
  • 처음엔 하수관, 강우량계 모델만을 만들려다 하수량 정보, 강수량 정보를 분리함.

:three: Today I Learned

Custom django-admin Command

  • django에서 시드 데이터 등록하는 등 자주 반복하는 명령 등을 만들어서 사용하는 기능.
  • < 앱 이름 >/management/commands 폴더를 만듦(폴더 별 __init__.py 파일 필요)
  • 파일 내에서 BaseCommand를 상속받은 Command 클래스를 만들고 handle 메소드를 오버라이딩.
  • 이후 python manage.py < command 파일 이름 >으로 실행 가능.
  • 데이터가 제대로 입력되었는지 확인하기 위한 출력은 self.stdout.write를 사용.
    • 성공 시 self.style.SUCCESS('< 메시지 >').
    • 실패 시 self.style.ERROR('< 메시지 >').
  • 에러 시 self.stderr.write.

© 2021. All rights reserved.

Powered by Hydejack v7.5.2