분류 전체보기

    [Django]setUp() vs setUpTestData() 차이점

    Django에서 unittest를 진행할 때 초기 데이터들을 설정하기 위해서는 다음과 같은 메소드가 사용될 수 있다. setUp() setUpTestData() https://docs.djangoproject.com/en/3.1/topics/testing/tools/#testcase Testing tools | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com 겉으로 보기에 두 함수는 동일한 역할을 한다. 하지만 동작하는 원..

    [Django]get_object() 란?

    get_object() 란? 간단하게 get_object()는 pk로 queryset을 필터링 하고, queryset 결과에서 object를 뽑아서 return 시켜주는 함수이다. 실제 코드는 class SingleObjectMixin(ContentMixin) 내에서 확인할 수 있다. https://docs.djangoproject.com/en/3.2/ref/class-based-views/mixins-single-object/#singleobjectmixin Single object mixins | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documen..

    [Python]isinstance() 란?

    isinstance(object, classinfo) 란? isinstance()는 주어진 인스턴스가 특정 클래스/데이터 타입인지 검사를 해주는 함수이다. 인스턴스가 특정 클래스/데이터 타입과 일치할 경우 True, 아닐 경우 False를 반환한다. print(isinstance(1, int)) # True, int 인지 검사 print(isinstance(1.123, float)) # True, float 인지 검사 print(isinstance({'a': 1}, dict) # True, dict 인지 검사 class Example: pass example = Example() print(isinstance(example, Example)) # True, Example 클래스 인지 검사

    [Django]GenericForeignKey, ContentType로 여러 모델과의 관계 맺기

    RDB를 사용하여 모델을 만들다 보면 한 모델이 여러 모델과의 관계를 맺어야 하는 순간이 생기기 마련입니다. 일반적으로 생각한다면 ForeignKey를 이용하여 모델링을 하는 방법이 떠오를 것입니다. 위의 설명으로는 부족하니 하나의 모델을 통해 예시를 들어 설명해보겠습니다. class Post(models.Model): title = models.CharField(max_length=100) # 여러 필드들 class Comment(models.Model): content = models.CharField(max_length=100) # 여러 필드들 class Recommend(models.Model): post = models.ForeignKey(Post, on_delete=models.CASCADE)..

    [Python]hasattr(), getattr(), setattr() 함수란?

    파이썬에는 변수가 있는지 확인하는 함수로 3가지가 존재한다. 하나씩 차례대로 알아보자. hasattr(object, name) object에 name 속성 존재하는지 여부를 확인한다. class cls: a = 1 def b(self): pass # cls에 b가 존재할 경우 True 반환 print(hasattr(cls, 'b')) True getattr(object, name[, default]) object에 존재하는 name 속성의 값을 가져온다. class cls: a = 1 def b(self): pass # cls에서 a의 값을 가져오기 print(getattr(cls, 'a')) 1 setattr(object, name, value) object에 존재하는 name 속성의 값을 설정한다. ..

    [Django]Openstack Swift 401 Authentication failed 삽질기

    Django에서 Object storage 기술을 사용하기 위해 서드파티 라이브러리를 활용하여 개발한 도중 겪었던 401 Authentication 에러에 대해 포스팅 해보려고 합니다. 제가 사용했던 오픈소스는 다음과 같습니다. (python-swiftclient는 django-storage-swift에 의존하는 라이브러리) https://github.com/dennisv/django-storage-swift GitHub - dennisv/django-storage-swift: OpenStack Swift storage backend for Django OpenStack Swift storage backend for Django. Contribute to dennisv/django-storage-swif..

    [Python]property로 getter, setter 구현하기

    Python에서 getter, setter 구현하는 방법 Python 에서 getter와 setter 함수를 구현하는 방법은 2가지가 존재한다. property() 함수를 이용하는 방법 @property 속성을 이용하는 방법 하나씩 차례대로 알아보자. property() 함수 이용 class Person: def __init__(self): self._age = 0 def get_age(self): # getter return self._age def set_age(self, value): # setter self._age = value age = property(get_age, set_age) leffe = Person() leffe.age = 20 # 내부적으로 setter 호출 print(leffe..

    [Python]all(), any() 함수란?

    all() 함수란? all(iterable) 함수는 인자로 받은 반복 가능한 자료형(iterable)의 모든 요소가 참이면 True를 반환하는 함수이다. 간단한 예제를 통해 정리하고 넘어가자. a = [1, 2, 3, 4, 5] print(all(a)) # True b = [0, 1, 2, 3, 4] print(all(b)) # False, 0 이라는 값이 리스트에 존재해 False 반환 c = [] print(all(c)) # True, 빈 리스트에 대해서는 True 반환 print(all('test')) # True, 문자열은 True 반환 # 딕셔너리의 경우 key 값의 참, 거짓만을 반영함 print(all({1: 1, 2: 2})) # True print(all({True: 1, False: 2..

    [Django]Django REST Framework - Permissions

    아래의 포스팅은 DRF 공식 Documentation에 존재하는 permission에 대한 내용을 번역한 글입니다. 틀린 내용이 있을 수 있으니 헷갈리는 부분은 원문을 참고하여 주시면 감사하겠습니다. https://www.django-rest-framework.org/api-guide/permissions/#permissions Permissions - Django REST framework www.django-rest-framework.org Permissions 인증 또는 식별만으로는 일반적으로 정보 또는 코드에 엑세스하기에 충분하지 않다. 이를 위해서 접근을 요청하는 주체에 권한이 있어야 한다. — Apple Developer Documentation 인증 및 스로틀링과 함께 권한은 요청을 허용할지..

    [테스트]단위 테스트(Unit test)란?

    단위 테스트(Unit Test) 단위 테스트는 하나의 모듈을 기준으로 독릭적으로 진행되는 가장 작은 단위의 테스트이다. 여기서 모듈이란 하나의 기능 혹은 .py와 같은 파일을 일컫는 말이다. 예를 들어 회원가입 메소드가 있고 이를 위한 독립적인 테스트를 1개의 단위테스트라고 부를 수 있다. 테스트 작성의 필요성 테스트 종류에는 단위 테스트, 통합 테스트 등 여러가지 종류의 테스트가 존재한다. 각각 종류는 다르지만 테스트 코드를 작성하는 이유는 전부 동일하다. 사람이 하는 테스트는 완벽하지 않다 -> 사람은 기계가 아니기에 항상 모든 조건을 동일하게 테스트 할 수 없다. 테스트에 드는 비용을 절감할 수 있다 -> 직접 기능을 수행하며 테스트를 하는 것 보다 테스트 코드를 돌려보는 것이 시간 절감에 도움 된..