_won_
wonprogrammer
_won_
전체 방문자
오늘
어제
  • 분류 전체보기
    • woncoding
      • TIL
      • WIL
    • source Code
      • Python
      • Programmers
      • BAEKJOON

블로그 메뉴

  • 방명록

티스토리

Github · Wonprogrammer
hELLO · Designed By 정상우.
_won_

wonprogrammer

woncoding/TIL

TIL | 12.6.화 [DRF / github]

2022. 12. 6. 22:49

- Django Rest Framework

 

[Pillow : Image위 글자 및 배경색 설정해주기]

#1. x, y의 좌표를 이전 코드에서 받아서 textbbox의 영역을 설정해주고, 
position = (x, y)

#2. textbbox의 영역을 받아서
left, top, right, bottom = draw.textbbox(position, i, font=font)

#3. textbbox의 영역 범위에서 (left-2, top-2, right+2, bottom+2) 이영역에 정의한 RGB색으로 배경색을 fill 해준다.
draw.rectangle((left-2, top-2, right+2, bottom+2), fill=(0,0,0,150))

#4. text는 position에 위치하고 변수 i에 적어놓은 글자가 들어간다 + 글자색은 정의된 RGB로 들어가게 된다.
draw.text(position, i, font=font, fill=(255,255,255))

#3번의 fill = 배병색
#4번의 fill = 글자색

 

 

[Django Seed, Faker를 활용한 데이터 만들기]

  • 더미 유저가 필요해서 Seed, Faker를 활용해 데이터 베이스에 저장해준다.

- 참고링크

https://velog.io/@kmnkit/Django-Seed-Faker를-활용한-데이터-만들기-총정리

 

Django Seed, Faker를 활용한 데이터 만들기 총정리

장고 개발을 하려다 보면 테스트용 데이터는 필요한데 일일히 많이 만들기는 어렵고 할 때 활용 가능한 것이 바로 Django Seed와 Faker입니다.또한 각 모델에 따라 OneToOneField냐, ManyToManyField냐, ForeignK

velog.io

 

1.인스톨 / Settings

간단하게 아래 명령어를 터미널에 입력함으로써 인스톨 가능합니다. 

pip install django-seed

이 때 faker 패키지가 함께 설치됩니다.

설치 후, settings.py → Installed apps에 "django-seed"추가 후

파일경로 : users/management/commands/seed-users.py를 작성합니다.
이 때, management와 commands 폴더 각각에 init.py 파일(아무 내용 없어도 됨)을 함께 작성해야 이 폴더들이 파이썬 모듈로 인식됩니다.

2.Users처럼 외부키가 전혀 없는 모델의 데이터 작성

seed_users.py

1 from django.core.management.base import BaseCommand
2 from django_seed import Seed
3 from users.models import User
4
5 class Command(BaseCommand):
6   help = "이 커맨드를 통해 랜덤한 테스트 유저 데이터를 만듭니다."
7
8   def add_arguments(self, parser):
9       parser.add_argument(
10          "--total",
11          default=111,  # 몇 명의 유저를 만드나 설정해줌
12          type=int,
13          help="몇 명의 유저를 만드나"
14      )
15  
16  def handle(self, *args, **options):
17      total = options.get("total")
18      seeder = Seed.seeder()
19      seeder.add_entity(
20          User,
21          total,
22          {
23              "is_staff": False,
24              "username": lambda x: seeder.faker.user_name(),
				# 내가 만드려는 model에 맞게 custom
26          }
27      )
28      seeder.execute()
29      self.stdout.write(self.style.SUCCESS(f"{total}명의 유저가 작성되었습니다."))

작성 후,
터미널에서 python manage.py seed_users 명령어를 실행하면 위 코드의 내용이 실행됩니다.

이 경우 데이터를 만드는 데에는 아무 바깥쪽에서의 제한은 없으나 모델 안의 각 필드, 특히 Username이나 Email 같은 경우 모든 유저가 다 달라야 하므로 lambda와 faker를 통해 랜덤값을 쥐어줍니다.

 

 

 

 


 

 

 

- github

 

[commit할 파일 설정]

  • git add 후 git status를 입력해 확인해보면 변경되거나 커밋해야할 파일들 목록을 확인해 볼 수 있다.
  • 직접 하나하나 git add 파일명 (tab으로 자동완성 가능) 을 적어줘서 commit할 파일들을 정해주거나
  • git add . 으로 모든 파일을 commit할 목록으로 지정해줄 수 있다.
저작자표시 비영리 변경금지 (새창열림)

'woncoding > TIL' 카테고리의 다른 글

TIL | 12.8.목 [DRF ↔️ JS CRUD]  (0) 2022.12.09
TIL | 12.7.수 [DRF ↔️ JS CRUD]  (0) 2022.12.09
TIL | 12.5.월 [DRF ↔️ JS CRUD]  (0) 2022.12.05
TIL | 12.2.금 [DRF ↔️ JS CRUD]  (0) 2022.12.02
TIL | 12.1.목 [Back-end]  (0) 2022.12.02
    'woncoding/TIL' 카테고리의 다른 글
    • TIL | 12.8.목 [DRF ↔️ JS CRUD]
    • TIL | 12.7.수 [DRF ↔️ JS CRUD]
    • TIL | 12.5.월 [DRF ↔️ JS CRUD]
    • TIL | 12.2.금 [DRF ↔️ JS CRUD]
    _won_
    _won_
    Coding Practice blog

    티스토리툴바