파이썬/장고

    Django, views.py에서 디버깅한 방법

    Django, views.py에서 디버깅한 방법

    views.py에서 postman을 이용하여 디버깅하는 방법을 기록하고자 글을 작성하게 되었다. 내가 유용하게 사용했던 방법은 fsting을 사용하여 데이터를 터미널창에 찍어보는 방법이다. 이렇게 해주면 commentlist가 사용된 url에 get, post 요청을 보내주면 해당 프린트가 터미널창에 찍히게 되어 디버깅이 용이해진다. class CommentList(APIView): def get(self, request): comments = Comment.objects.all() serializer = CommentSerializer(comments, many=True) # print("백엔드 : 댓글을 postman에서 get할 시 보이는 메시지 입니다.") # print(f"백엔드 : serial..

    Django, admin과 RestAPI UI 깨졌을 때

    Django, admin과 RestAPI UI 깨졌을 때

    프로젝트 중 admin의 UI가 깨지는 현상이 발생했다. 확인해보니 RestAPI의 UI도 깨져있었다. 이를 이렇게 해결하였다. python manage.py collectstatic

    Django, migrate OperationalError 에러

    django.db.utils.OperationalError: (1050, "Table 'article_image' already exists") 라는 에러가 발생했다. 그렇다면 발생한 부분의 모델 이름을 저 명령어의 마지막에 붙여주면 된다. python manage.py migrate --fake article python manage.py migrate --fake 모델이름

    Django, 개발자 콘솔 창에서 storage 보기

    Django, 개발자 콘솔 창에서 storage 보기

    MacOS Monterey 기준 작성 프로젝트 도중 토큰을 받아와야 했었는데 이때 storage 를 확인해야했다. 다음은 개발자 콘솔창에서 storage 창 보는 방법이다. 크롬용 사파리

    Django,  custom token 시 발생하는 문제

    Django, custom token 시 발생하는 문제

    프로젝트 진행 중 access token을 받아와 post하는 과정에서 문제가 발생했다. 에러 메시지 ValueError: Field 'id' expected a number but got 'Processing' 문제 해결 id를 int로 받아와야 하는데 username 을 str로 받아와서 생긴 문제 user/serializers.py 수정한 부분 # 커스텀 해서 발생하는 문제 class CustomUserTokenObtainPairSerializer(TokenObtainPairSerializer): @classmethod def get_token(cls, user): token = super().get_token(user) token['id'] = user.id token['username'] = u..

    Django, frontend-backend 통합 or 구분 시 static 폴더 불러오기

    Django, frontend-backend 통합 or 구분 시 static 폴더 불러오기

    프로젝트를 진행하면서 프론트엔드 - 백엔드가 구분되어 있을때와 구분되어있지 않을때 static 폴더를 불러오는 방식이 다르다는 것을 알게 되었다. 이를 아래의 내용으로 정리해보려 한다. frontend-backend 구분 안되어 있을 시 static 폴더 불러오기 폴더 구조 frontend-backend를 구분하는 것을 목적으로 프로젝트를 만들고 있었기에 templates 폴더에 템플릿을 넣지 않았다. settings.py 설정에 추가해준 것 STATIC_URL, STATICFILES_DIRS, STATIC_ROOT 를 지정해주었다. STATIC_URL = "static/" STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ] STATIC_ROOT = os..

    Django, runserver시 port 변경

    원하는 포트가 5500 인 경우 $ python manage.py runserver 5500

    Django, ApiView

    API View 의 방법에는 class-based views(CBV), function based views(FBV) 가 있다. 이는 말 그대로 코드가 Class화 된 코드인지, 함수화 된 코드인지 어떤것을 주로 사용했는지 컨벤션을 정하는 일이다. from News.models import New from News.serializers import NewSerializer from django.http import Http404 from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status class NewList(APIView): """ List all..

    Django, ViewSet

    retrieve, update. not get or put. Router를 사용해 더 쉬운 url 조작 가능 viewsets.ReadOnlyModelViewSet을 상속하면 Read만 가능하다. from rest_framework import viewsets class NewModelViewSet(viewsets.ReadOnlyModelViewSet): """ This viewset automatically provides `list` and `retrieve` actions. """ queryset = NewModel.objects.all() serializer_class = NewModelSerializer viewsets.ModelViewSet을 상속하면 CRUD 모두 가능하다. @action 은 ..