본문 바로가기
관리자

Programming-[Backend]

(417)
[링크] python circular import 해결 - import time, runtime py 파일 맨 위쪽에서 import 하지말고, 함수 선언문이나 실행문 속에서 from ... import ...을 하면 된다. 맨 위쪽 import는 파이썬이 처음 실행을 위해 import문들을 모두 스캔할 때 import하는 것이고, 함수 선언문이나 실행문에서의 import는 실제로 그 함수가 불릴때(runtime) import하는 것이다. https://blog.mathpresso.com/python-circular-imports-e89c5bf16510 Python Circular Imports Python Circular Imports가 무엇이며, 오류는 어떻게 해결할까? blog.mathpresso.com
[TIL] DjangoFilter(DRF filter_bakcends, django-filter filterset_class) Django 및 Django Rest Framework(DRF)의 Filter 기능에 대한 간략한 정리 1. DRF - filter_backends DRF를 이용하여 viewset을 사용하면 상속받는 ModelViewSet
[TIL] SQL sequence로 postgresql primary key sequence 없는 값 insert 하기 : 시퀀스 생성 완벽하게 정확한 내용은 아님. 개인 기록용. 혹시라도 참고하시는분은 테스트 디비 등에 주의해서 적용해보시고 진행하시길.. 1. 상황 postgresql 테이블에서 sequence가 지정되지 않고 serial로만 지정되어있어서 pk값을 default로 넣을 수가 없는 상황 with tmp as (select a_id, b_id from ab_table join b_table b on ab_table.b_id = b.id where 1 = 1 and ab.b_id in (복잡한 서브 쿼리) insert into c_table (id, deleted, created, modified, a_id, b_id) select nextval('c_tabld_id_seq'), null, now(), now(), tmp...
[TIL][링크] 파이썬 부모 생성자 호출, __init__ BaseError 상속 https://newbie-developer.tistory.com/146 파이썬. 클래스 상속과 생성자에 대하여. 그리고 super에 대하여 자식 클래스에서 따로 생성자를 선언하지 않으면 자식 객체를 생성하면 자동으로 부모클래스의 생성자를 실행한다. class paraent(): def __init__(self,input1): print("부모 생성자 실행. 인풋 파라미터는") newbie-developer.tistory.com 요약 class ChildError(BaseError): default_code = CODE1 class BaseError(APIException): status_code = status.HTTP_400_BAD_REQUEST default_detail = "" default_co..
Python PIL _getexif, TAGS 적용, AttributeError, JPEG, TIFF 차이 가장 표면적인 응용 기술 부분부터 살펴나간다. 1. PIL의 _getexif, TAGS 다음 코드를 통해 이미지 파일의 메타정보(촬영일, 촬영 장소 gps, 이미지 크기 등)를 얻어낼 수 있다. from PIL import Image, ExifTags image_file = Image.open("./열고자 하는 그림 파일") exif = image_file._getexif() if exif: exif_tag = {ExifTags.TAGS[k] for k, v in exif.items() if k in ExifTags.TAGS} PIL은 Python의 Image 처리 라이브러리이다. 여기서 Image 클래스를 이용하여 Image들을 처리할 수 있다. ExifTags는 이미지 파일의 메타 정보에 대한 key..
[탐험] Django admin에서 view, template, render 다루기. 비동기 처리 버튼 만들기 1. 목표 Django admin 페이지로 어떤 파일들을 모아서 압축 파일을 생성하는 비동기 작업이 완료되면, 그것들을 다운로드 받을 수 있는 페이지 제작 2. 구조 3. 구조 설명 3-1. django admin django admin은 모델을 생성하고 admin에 등록하면, admin 주소로 들어오는 요청을 보낼 수 있는 FORM과 화면을 구성하는 TEMPLATE을 간단히 만들 수 있도록 해준다. @admin.register로 admin에 모델을 등록하고 get_urls로 path와 일치하는 요청이 들어왔을 때 특정 view로 가서 로직을 처리하게 할 수 있다. meta_data로 app_label값과 model_name값을 불러와서 view의 name을 동적으로 만들어줄 수 있다. 이 name값은 ..
[TIL] django data migration 데이터 마이그레이션 https://simpleisbetterthancomplex.com/tutorial/2017/09/26/how-to-create-django-data-migrations.html 데이터베이스의 Schema를 변경하는게 아니라 data들을 조작할 수 있는 것을 Data Migrations라 한다. 새로운 필드를 추가하고 그 값을 넣고 싶으면 models.py에서 해당 필드를 null=True를 주거나 default값을 주고 schema변경 마이그레이션 적용 → data migration → null=False로 변경하는 순서를 적용해야한다. 빈 마이그레이션 파일을 만들고, 원하는 함수를 작성한 뒤 migrations.RunPython()안에 함수명을 적어주면 적용된다. def **slugify_title*..
[TIL] FloatField, DecimalField 차이점 / 위경도 표시 소수점과 거리값 Django의 Serializer에서 정의하는, 소수점 값을 사용할 수 있는 필드는 FloatField와 DecimalField가 있다. 결론적으로는 아래 참조에 나와있듯이 해당 필드를 이용해서 계산이 필요한 경우는 DecimalField를 사용하는 것이 좋다. DecimalField - str 기반이다. '126.123541231'로 표시된다. coerce_to_string = False로 옵션을 적용하면 decimal 타입으로 표시할 수 있다. - max_length, decimal_places 옵션을 통해 최대 길이와 소수점 자리수를 지정할 수 있다. 기타 상세한 내용은 참조 링크 ref) 스택오버플로우 https://stackoverflow.com/questions/2569015/django-fl..