Python
-
list comprehension 중복 제거 - Object of type set is not JSON serializablePython 2022. 1. 16. 14:56
class ProductListView(View): def get(self, request, *args, **kwargs): tagcategory = request.GET.get('tagcategory', None) tag = request.GET.get('tag', None) user_type = request.GET.get('user_type', None) q = Q() if user_type: q &= Q(user__user_type__name=user_type) if tagcategory: q &= Q(producttag__tag__tag_category__name=tagcategory) if tag: q &= Q(producttag__tag__name=tag) products = Product...
-
UUID vs CharField의 max_lengthPython 2022. 1. 2. 22:38
'ZARA' 사이트를 막 클론코딩하기 시작했을 때인데 모델링하던 중에 주문 앱에서 고유한 값이어야 하는 '주문번호'가 있었습니다. 그런데 이 부분을 CharField로 했어서 중복되지 않는 임의의 문자로 바꿔야 했습니다. 그래서 아래처럼 CharField(max_length=20)로 할 경우와 UUID 중 더 효율적인 방법에 대해 고민하고 찾아봤습니다. 사실 이런 질문을 하신 이유에 대해서 어렴풋이만 그 의도를 짐작할 수 있었어서 다시 한번 여쭤보고 진행을 했습니다. 멘토님께서 조언을 주신 덕분에 'UUID'에 대해 찾아봤습니다. UUID - 36개 문자(32개의 문자와 4개의 하이픈) 8-4-4-4-12 - 가장 많이 쓰이는 버전은 버전4 (시간+랜덤) - 128비트의 숫자, 32자리의 16진수로 표현..
-
Python dictionary get 메소드 vs Django objects get 메소드Python 2022. 1. 2. 01:35
python dictionary get 메소드 딕셔너리의 키에 해당하는 값을 가져올 때 두가지 방법이 있습니다. 1. get() 방식 2. 대괄호 방식 두 가지의 차이점에 대해서도 모른채 코드를 작성했었는데 너무나 부끄럽습니다.. 그래서 오늘 이렇게 정리해서 확실히 알고 코드를 작성해야겠습니다. 키에 해당하는 값이 있을 때는 같은 값을 출력합니다. 그러나 해당 키가 존재하지 않는 키라면 완전 다른 결과를 보여줍니다. 우선 아래의 코드들이 어떤 차이점이 있는지 보시죠. 1. get() 방식 - 값이 있을 때 : 키에 해당하는 값 출력(예시 : 3번째 줄) - 값이 없을 때 : 'None'으로 출력(예시 : 4번째 줄) - 값이 없을 때 : default 값 출력(예시 : 5번째 줄) 2. 대괄호 방식 - ..
-
Python 용어 정리Python 2021. 12. 15. 16:22
class Kpop:# 여기서 클래스는 객체를 만들기 위한 틀 def sing(self):# sing 함수가 메서드 return "Lalala" SG_wannabe = Kpop()# 객체 만드는 방법 SG_wannabe.song()# 객체의 메서드 사용하는 방법 'Lalala'# 리턴되는 값 객체 - 어떠한 속성값(value 또는 attribute)과 행동(메서드)을 가지고 있는 데이터 (여기서는 SG_wannabe가 객체가 될 수 있다.) 클래스 - 객체를 만들기 위한 틀 인스턴스 - 특정 클래스로 만들어진 객체 (여기서 SG_wannabe는 객체이자 인스턴스이다.) 메서드 - 클래스 내부에 정의된 함수 (여기서는 sing 함수가 메서드이다.) 객체 만드는 방법 - 인스턴스명 = 클래스() 객체의 메서..
-
Function Parameter & ArgumentPython 2021. 12. 9. 11:30
오늘 알아보고자 하는 것은 Function Parameter & Argument 입니다. 우선 Parameter와 Argument가 어떤걸 의미하는지부터 알아보겠습니다. 그리고 여러 예시를 통해서 설명해드리겠습니다. * Parameter란 - 매개변수 - 함수가 받는 변수를 의미 * Argument란 - 인자 - 함수에 실제로 들어가는 input value * Positional Argument (기본값 또는 기본 형태) - 함수에서 정의한 위치대로 Parameter에 대입 * Keyword Argument (kwargs) - 순서 대신에 Parameter 이름에 값을 지정 - 장점 : 프로그램의 안정성 UP! (변수명을 써서 변수 기입시 실수를 줄일 수 있습니다.) 가동성 UP! (변수명을 보면 그 역..