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(..
프로젝트를 진행하면서 timezone 모듈과 datetime 모듈을 사용하였는데, 두 개다 시간을 다루는 모듈이라고만 인지하고 있었고 무슨 차이가 있는지 어떤 장단점이 있고 어떤 상황에 사용해야 하는지 잘 이해를 하지 못한 채로 사용하고 있었는데, 아무래도 정리가 필요한 것 같아서 찾아보니 생각보다 큰 차이점이 있었다.간단히 이야기하자면, datetime은 날짜와 시간 정보를 다루는 데 사용되고,datetime에 추가적으로 timezone은 시간대 정보를 관리하는 데 사용된다. 시간을 처리할 때 시간대는 왜 중요할까?다른 프로젝트를 할 때는 잘 느끼지 못하였는데 시간대를 맞추는것은 매우 중요한 역할을 한다. 나라 또는 지역마다 살아가는 시간이 다르기 때문에 편차가 존재하는데, 이러한 시간대의 차이는 업무..
단축 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..
앞선 글에서, 코드에 대한 설명이 조금 부족한 것 같아서 추가적인 설명이다. [Custom] Django와 CustomJWT로 안전한 인증 시스템 구축하기웹 애플리케이션 개발에서 인증은 매우 중요한 부분이고, JWT는 웹과 API에서 인증 및 권한 부여를 효율적이고 안전하게 관리해주는 매우 유용한 인증 기법이다. 처음 JWT에 대해서 공부하고 적용jongseoung.tistory.com CustomJWTAuthentication 클래스와 CustomJWTBackend 클래스는 둘 다 JWT 토큰을 사용한 인증을 수행하지만, 사용되는 시점과 방식에 차이가 있다. CustomJWTAuthentication역할CustomJWTAuthentication 클래스는 미들웨어로 사용되어, 요청(Request)이 Dj..