Django/DRF

· Django/DRF
django에서 url패턴을 정의하기 위해서 path와 re_path를 사용한다. pathpath는 Django2.0에 도입된 함수로, 보다 간결하고 직관적인 방식으로 URl 패턴을 정의할 수 있게 해 준다. 정규식 표현을 사용하지 않고도 url 패턴을 쉽게 작성할 수 있다. path는 경로 변수의 타입을 명시할 수 있는 기능을 제공하는데, 기본적으로 지원하는 타입은 str, int, slug, uuid, path 등이 있다. re_pathre_path는 Djang2.0 이전에 사용되던 url 함수의 대체품으로, 여전히 정규 표현식을 사용하여 url 패턴을 정의할 수 있도록 한다. 보다 복잡한 URL 패턴이 필요한 경우 re_path를 사용할 수 있습니다. 정규 표현식정규 표현식은 자주 사용하진 않지만 ..
· Django/DRF
동적 이미지라이브러리# pip install requestspip install pillowview# hottrack/views.py# View 함수에서 동적으로 이미지 생성 및 응답# - 동적으로 이미지/엑셀파일/PDF 등을 생성 시애 디스크에 파일을 저장하지 않고, 응답 가능 # (보다 빠른 응답 가능, 디스크 사용이 불가능한 서버에서도 유용)from django.http import HttpResponsefrom django.shortcuts import get_object_or_404from hottrack.utils.cover import make_cover_imagedef cover_png(request, pk):# 최대값 512, 기본값 256canvas_size = min(512, int(..
· Django/DRF
프로젝트를 진행하면서 timezone 모듈과 datetime 모듈을 사용하였는데, 두 개다 시간을 다루는 모듈이라고만 인지하고 있었고 무슨 차이가 있는지 어떤 장단점이 있고 어떤 상황에 사용해야 하는지 잘 이해를 하지 못한 채로 사용하고 있었는데, 아무래도 정리가 필요한 것 같아서 찾아보니 생각보다 큰 차이점이 있었다.간단히 이야기하자면, datetime은 날짜와 시간 정보를 다루는 데 사용되고,datetime에 추가적으로 timezone은 시간대 정보를 관리하는 데 사용된다. 시간을 처리할 때 시간대는 왜 중요할까?다른 프로젝트를 할 때는 잘 느끼지 못하였는데 시간대를 맞추는것은 매우 중요한 역할을 한다. 나라 또는 지역마다 살아가는 시간이 다르기 때문에 편차가 존재하는데, 이러한 시간대의 차이는 업무..
· Django/DRF
단축 url 프로젝트를 진행하면서 조회수 관련해서 통계를 내는 부분이 있었는데, 그 부분에 관련된 예제이다. Models.pyfrom django.db import modelsfrom core.models import TimeStampedModelclass ShortURL(TimeStampedModel): user = models.ForeignKey("users.User", related_name="user_url", on_delete=models.CASCADE) origin_url = models.URLField(verbose_name="원본 url") short_url = models.CharField(max_length=100, verbose_name="단축 url") requ..
· Django/DRF
앞선 글에서, 코드에 대한 설명이 조금 부족한 것 같아서 추가적인 설명이다. [Custom] Django와 CustomJWT로 안전한 인증 시스템 구축하기웹 애플리케이션 개발에서 인증은 매우 중요한 부분이고, JWT는 웹과 API에서 인증 및 권한 부여를 효율적이고 안전하게 관리해주는 매우 유용한 인증 기법이다. 처음 JWT에 대해서 공부하고 적용jongseoung.tistory.com CustomJWTAuthentication 클래스와 CustomJWTBackend 클래스는 둘 다 JWT 토큰을 사용한 인증을 수행하지만, 사용되는 시점과 방식에 차이가 있다. CustomJWTAuthentication역할CustomJWTAuthentication 클래스는 미들웨어로 사용되어, 요청(Request)이 Dj..