반응형
❤️🔥TIL : Today I Learned❤️🔥
그날그날 내가 공부한 것을 정리하는 것
내일배움캠프 AI트랙 59day
오늘 배운 내용 - 쿠키를 사용해서 조회수 관리하기
class UnftDetail(APIView):
def get_object(self, id):
try:
return Unft.objects.get(id=id)
except Unft.DoesNotExist:
raise Http404
def get (self, request, id):
target_unft = self.get_object(id)
# 당일날 밤 12시에 쿠키 초기화
tomorrow = datetime.datetime.replace(timezone.datetime.now(), hour=23, minute=59, second=0)
expires = datetime.datetime.strftime(tomorrow, "%a, %d-%b-%Y %H:%M:%S GMT")
add_cookies = ''
# 쿠키 읽어서 hits 값이 있는 지 확인
if request.COOKIES.get('hits') is not None:
cookies = request.COOKIES.get('hits')
cookies_list = cookies.split('|')
if str(id) not in cookies_list:
# 쿠키 생성할 내용 : 쿠키가 있어서 기존 내용에 보고있는 id 추가
add_cookies = f'{cookies}|{id}'
# 조회수 추가
target_unft.hits +=1
target_unft.save()
else :
# 쿠키 생성할 내용 : 쿠키가 없어서 보고있는 id만 추가
add_cookies = id
# 조회수 추가
target_unft.hits +=1
target_unft.save()
serializer = UnftSerializer(target_unft)
response = Response(serializer.data, status=status.HTTP_200_OK)
if add_cookies: # 쿠키생성
response.set_cookie('hits', add_cookies, expires=expires) # 쿠키 생성
return response
반응형
'I learned' 카테고리의 다른 글
내일배움캠프 AI트랙 13 Week (0) | 2022.11.27 |
---|---|
내일배움캠프 AI - TIL 60 (0) | 2022.11.27 |
내일배움캠프 AI - TIL 58 (0) | 2022.11.24 |
내일배움캠프 AI - TIL 57 (0) | 2022.11.23 |
내일배움캠프 AI트랙 12 Week (0) | 2022.11.20 |