TIL

On a regular basis·2021년 10월 24일
0
post-thumbnail

헷갈리는게 넘 많아서 🙉. 기억을 기록하기위해 정리하는 TIL.
detail이 너무 떨어진다 춈춈하게 공부를 해볼까아...?🔍

📍 django 에서 db 접속할 때
$ sqlite3 <db 이름>
.database
.tables

# my_settings.py
from pathlib import Path
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'AIFFEL.db',
    }
}
내장 db이기 때문에 database를 이렇게 설정해주어야 shell이랑도 연동되더라... 
이걸 못해서 아주 시간을 많이 날렸다 ^^ 
db browser for sqlite 사용해서 table 먼저 만들어주고 shell로 db 넣어주면 끝! ㅎ힣ㅎㅎ...
첨엔 쫌 짱났는데 쓰다보니 뭔가 mysql보다 훨씬 가볍고 편한느낌?!

📍 게시물 수정할 때 !!

def patch(self, request, question_id):
        try:
            user    = request.user
            title   = request.GET.get('title')
            content = request.GET.get('content')

            selected_question = Question.objects.get(id=question_id)
            
            #  해당 질문 작성자가 아니면 수정 불가
            if not user == selected_question.user:
                return JsonResponse({'Message': 'Unauthorized_User'}, status=401)

            selected_question.title   = title if title else selected_question.title
            selected_question.content = content if content else selected_question.content
            selected_question.save()
        
            return JsonResponse({'Message': 'Success!'}, status=201)
        
        except Question.DoesNotExist:
            return JsonResponse({'Message': 'Not_Existed_Error'}, status=400)

        except KeyError:
            return JsonResponse({'Message': 'Key_Error'}, status=400)
  • title만 혹은 content만 둘 중 하나만 고치고 싶어하는 경우도 있으니까 하나만 고칠 경우를 대비해서 @ if @ else @@ 삼항연산자 넣기! 이거 진짜 유용한 듯 ㅎㅎ

📍 그외 모델 작성 시 유의사항

  • Unique = True
    유일성을 만족했니? 해당필드에 값이 겹쳐지지 않게?
  • NULL = True
    빈값을 허용할거야
  • Blank = True
    공백도 하나의 값으로 인정할꺼야

📍 datetime 필드 쓸 때

  • auto_now 최종수정날짜
  • auto_now_add 첫 작성일자

📍 에러처리

  • 400 Bad Request
  • 401 Unauthorized 회원가입 or 로그인 하구왕
  • 403 Forbidden 유저가 해당 요청에 대한 권한이 없음 -> ex. solo 과금한 사람만 데이터 볼 수 있는 경우
  • 404 Not Found 요청된 URL 존재 안할 때

📍 예외처리

  • get할 때 값이 없거나 중복되거나 이 부분 exception처리 꼭!!
    아 근데 예외처리 너무 헷갈림. 다시 블로깅 이걸로 하나 해야할 듯.
    나만 헷갈리나. ㅠㅠ 공부하기....😮‍💨
profile
개발 기록

0개의 댓글