11월 07일 원티드 프리온보딩 백엔드 12일차 TIL
in Wantedpreonbording on Wantedpreonbording, Django
: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
.