python
[DRF]Serialize (Serializer & ModelSerializer)
Serialize(직렬화)란? Django에서 ORM을 사용하여 DB에서 데이터를 꺼내올땐 Django object형식의 데이터로 받아오게 됩니다. 파이썬 형식의 이 데이터를 JSON혹은 XML형식으로 변환하는것을 직렬화라 합니다. 그반대인 JSON, XML등의 형식을 파이썬 오브젝트형식으로 변환하는것을 역직렬화(Deserialize)라고 합니다. DRF에서 지원하는 Serializer 종류 기본적으로 rest_framework의 serializers 안에 존재합니다. Serializer ModelSerializer HyperlinkedModelSerializer ListSerializer BaseSerializer Serializer 심플한 Serializer입니다.(BaseSerializer는 따로..
[Pycharm]파이참 & 미니콘다 permission 오류 해결
파이썬 에디터들은 인터프리터들을 설정할 수 있습니다. 또한 가상환경에서 활성화된 인터프리터들 역시 설정할 수 있습니다. 저는 brew cask 로 설치한 miniconda를 사용하는데 자꾸 권한 에러가 발생 하였습니다. 이부분의 path를 공유하려고합니다. 실행환경 Os = Mac m1 Air 가상환경 = miniconda3(brew cask를 통한 설치) 에디터 = Pycharm CE (brew cask를 통한 설치) 위와같은 환경일때 저는 아래의 경로로 해결하였습니다. /opt/homebrew/Caskroom/miniconda/base/condabin/conda
[Django] 장고에서 TIME_ZONE & USE_TZ 파헤치기
이번에는 Django의 TIME_ZONE과 USE_TZ과 관련하여 파헤쳐보려고합니다. 장고에서 프로젝트를 생성하면 settings.py에 아래와같이 타임존관련 설정이 세팅되어있습니다. TIME_ZONE = 'UTC' USE_TZ = True UTC타임존을 사용하고 타임존을 사용한다는 말 입니다. 타임존이 'UTC'인건 이해할 수 있습니다. 다만 타임존을 사용한다?? 이게 무슨말일까요 이제부터 파헤쳐보려 합니다. **이글을 이해하기전 naive객체와 aware객체에 대한 이해가 더 필요하다면 아래의 글을 읽고 오시면 이해하시기 수월하실 것 입니다. https://dingwan0331.tistory.com/179 [Python] Python datetime aware & naive 객체 파이썬의 시간을 다루..
[Python] Python datetime aware & naive 객체
파이썬의 시간을 다루기위해선 datetime모듈을 불러와 사용합니다. 많은 언어와 프레임워크에서 시간을 다룰때 문제가 있습니다. 바로 timezone에 관련한 것 입니다. 해당 시간이 어느나라 어느 지역의 시간인지에 대한 정보이죠. 파이썬에서 이를 이해하고 컨트롤하기위해서는 aware & naive에 대해 좀더 명확히 이해하려합니다. aware & naive aware(알고있는) timezone의 정보를 가지고있는 datetime객체 naive(순진한) timezone의 정보를 모르는 datetime 객체 좀더 정확하게 파이썬 공식문서에는 두 객체의 정의를 아래와같이 정의내리고 있습니다. Objects of the date type are always naive. An object of type time..
[Django] Django Custom Manager 클래스 사용해보기
반복하지 말 것(DRY, Don't Repeat Yourself) 고유한 개념 및 데이터는 단 한 번, 단 한 곳에 존재하는 것으로 족합니다. 중복성은 나쁜 것이고, 정규화는 좋은 것입니다. 그러한 이유로, 본 프레임워크는 최소한의 것들을 가지고 최대한의 것을 만들어내도록 합니다. Django는 Dry원칙을 따릅니다. 이 Dry원칙을 지키는 일부분으로 Custom Mnager클래스를 사용해보려 합니다. Manager 클래스란 무엇일까?! Django.db.models 에 존재하는 Manager 클래스입니다. 우리가 Django에서 흔히 사용했던 클래스.objects.create()의 objects를 의미합니다. Django의 모델들은 objects라고 하는 default 매니저 클래스를 보유하게 됩니다...
[Django]장고에서 앱이름 변경하기
이번에는 1차프로젝트인 wish korea를 리펙토링 하려고 합니다. 앱이름들은 현재 DB테이블명으로 되어있어서 이를 수정하는 방법에 대해 블로깅 하려고 합니다. 우선은 stack overflow에 나와있는 방법입니다. https://stackoverflow.com/questions/8408046/how-to-change-the-name-of-a-django-app How to change the name of a Django app? I have changed the name of an app in Django by renaming its folder, imports and all its references (templates/indexes). But now I get this error when I ..