django 59

Validate 메서드 작성 = 시리얼라이저? 뷰?

Validate 메서드 작성은 어디에 하는게 좋을까? 시리얼라이저에서 검증 로직 처리하고, 뷰에서 데이터베이스에 접근하여 중복검사 등을 수행한다. validate 메서드와 관련된 코드를 시리얼라이저와 뷰에 모두 작성할 수 있다. 대신 각각의 접근 방식의 장단점이 있을테니 찾아봄 1. 시리얼라이저에 validate 메서드 작성 장점 데이터 유효성 검사를 시리얼라이저 수준에서 처리할 수 있음. 시리얼라이저는 입력 데이터를 검증하고 오류가 있을 경우 ValidationError을 발생시킴 -> 즉, 뷰에서 별도의 검증 로직을 작성할 필요가 없어짐 단점 오직 시리얼라이저 내부에서만 사용됨 -> 뷰에서 동일한 검증 로직을 수행하기 위해 시리얼라이저를 직접 호출해야함. 시리얼라이저 내부에서 데이터베이스에 접근하여..

STUDY/Python 2023.07.19

body 안넣었을때 에러처리 | 에러메세지 필드값 설정 | flake8 좋다..

오늘의 목표로는 회원가입시 request.data의 field 값이 비어있는 것이 아닌 body (= request.data) 자체가 없을 경우의 로직도 작성하고자 했다. service TestCase에서는 TypeError가 나왔고, view에 그에 따른 에러핸들링을 했으나 실행해보니 에러메세지가 TypeError의 메세지가 아닌 ValidationError가 나왔다. view가 아닌 service 로직에 적용을 하거나 raise를 사용해 예외처리를 해봤지만 결과가 같았다. body값이 없을 경우에는 request.data 가 빈값으로 밖에 나오질 않으니 if문을 사용해 response를 작성해주고, TypeError에 대한 에러핸들링 코드가 불필요해져서 삭제해주었다. TestCase 작성시에는 인자값..

PROJECTS 2022.12.10

pytest 에러

테스트코드를 작성하여 로직에 대한 에러처리와 코드가 잘 작동되는지 검증하고 확인할 수 있다는 사실을 알게되어, 장고에 내장되어있는 django.test 모듈을 사용하여 한 앱의 APIs와 Services 에 대한 테스트코드를 작성했었다. from django.test import TestCase 코드 최근 구인 과정 중 기업과제를 몇번 접해보니 unittest 보다는 pytest를 많이 사용하는 것 같더라. pytest는 fixture를 별도의 함수로 분리해서 관리 필요한 테스트 케이스에서만 호출해서 사용 fixture를 모듈화, 재가공, 재사용 등이 쉬움 테스트코드 결과도 unittest 보다 좀 더 상세함 장점들이 많아보여 사용해보고자 ! 모듈을 임포트하여 세팅하는 과정에 ... 겪은 문제들에 대해 ..

PROJECTS 2022.12.07

Django | RESTful API는 뒤에 slash가 없어야하는데 WARNING 발생

RESTful한 API의 규칙 중 하나가 url 뒤의 slash가 없음임. 그래서 Django 프로젝트를 적용해보려 했더니 경고가 발생하더라 원하는 url 127.0.0.1:8000/users/ 👉 127.0.0.1:8000/users 127.0.0.1:8000/posts/ 👉 127.0.0.1:8000/posts 우선 127.0.0.1:8000/users 와 127.0.0.1:8000/posts 을 했을 때 경고 내용을 자세히 보자면 Your URL pattern '/login' has a route beginning with a '/'. Remove this slash as it is unnecessary. If this pattern is targeted in an include(), ensure ..

PROJECTS 2022.11.10

AttributeError: This QueryDict instance is immutable

해당 함수는 게시글 작성에 관한 코드. view, service, Service TestCase 부분에서는 정상 작동되었으나 API TestCase를 작성 중에 발생 response 부분에서 data를 받지 못함. def test_post_view_def_post_ok(self): client = APIClient() user = User.objects.get(username = 'test_user') create_data = { 'title' : 'test_title3', 'content' : 'test_content3', 'tags' : '#sns', 'is_active' : True, 'views' : 60, 'created_date' : '2022-10-16 08:00:00.000000' } cl..

PROJECTS 2022.10.20

Team Project 6 | 7월 13일 |

☀️ https://github.com/2JYK/iPark_django_backend ☀️ ☀️ https://github.com/2JYK/iPark_frontend ☀️ 💨 오늘의 고민: 공원 상세 페이지에 포함되있는 댓글 부분 url을 어떻게 해야할지? 기본적으로 공원 상세페이지 url은 park// 입니다. 페이지 하단에 위치할 댓글 작성 url은 park//comment/ 입니다. 고민 1. 상세 페이지에서 함께 볼 수 있는 공간이니 url이 같아야 하는 걸까? 고민 2. 해당 공원에 대한 댓글의 수정, 삭제시 url은 어떤게 좋을지? 결정과 이유 공원 상세 페이지 : park// 댓글 작성 : park//comment/ 댓글 수정,삭제 : park//comment// 이유는 간단하게 url이 ..

PROJECTS 2022.07.14

Team Project 6 | 7월 12일 |

☀️ https://github.com/2JYK/iPark_django_backend ☀️ ☀️ https://github.com/2JYK/iPark_frontend ☀️ 💨 오늘의 고민: 어제, 오늘 계속 최종 S.A 수정하고 (팀장이 바톤터치를 원하길래 해줬는데.. 할 일이 은근 많은 팀장직..ㅎ..) 맡은 구역 API 작성하고 수정하고, json파일 수정하고 DB 수정하고, 테스트 코드 작성하며 작성한 함수 리팩토링 진행하니 진도가 안나간ㄷㅏ.. 리팩토링 끝내고 소셜부분도 작성하고 프론트도 작성하고 다음주 초에는 CI를 해야할텐데 갈 길이 멀다! 앞으로 더 리팩토링을 하겠지만 작성한 코드를 리뷰하고자 함 ☀️ 공원 상세페이지 filter와 get을 잘 구별하고 내가 원하는 데이터가 뭔지 그려본 다..

PROJECTS 2022.07.12

Team Project 6 | iPark 프로젝트 기획서

🔽 Git https://github.com/2JYK/iPark_django_backend https://github.com/2JYK/iPark_frontend 🔽 Notion https://heady-lan-a0c.notion.site/d4ff35daa2e24bc99ffe46fb3a46d309 와이어 프레임 🔽 user 부분 크게 보기 더보기 기능명세서 핵심 기능 : 공원 찾기, 지도, 커뮤니티, 나눔마켓 - 서울시 공원을 구역을 지정하거나 옵션을 선택해 찾을 수 있고 즐겨찾기를 하여 따로 모아 볼 수 있음 - Tag 선택으로 커뮤니티와 나눔마켓을 선택해 게시글 조회, 작성이 가능 메인페이지 공원 둘러보기 조회순 순서대로 공원을 보여줌 상단바 검색창을 통해 특정 공원을 찾기 네비게이션을 통해 해당 페이..

PROJECTS 2022.07.08

Team Project 5 | 7월 2-6일 |

Team Project 5 | The season of N.11 ✨ Github https://github.com/2JYK/The-season-of-N.11_backend.git https://github.com/2JYK/The-season-of-N.11_frontend.git 유화 제작 서비스 ; 사용자가 입력한 사진에 사계절의 효과를 주어 업로드, 수정 및 삭제 를 할 수 있음 👩🏻‍💻 담당 파트 : 회원가입 | 로그인-JWT발급 | 유화 제작 인공지능 기술 | 마이페이지-업로드,북마크 사진 | 게시글 수정 및 삭제 🌱 7월 2-6일 ✔️ 진짜.. 너무 바빴음.... 했던 작업 나열이 힘듬..  👍 포스팅 내용 ➕ 현재까지 결과물

PROJECTS 2022.07.06

Team Project 5 | 6월 30일 |유화 제작 인공지능 모델, Simple JWT

Team Project 5 | The season of N.11 ✨ Github https://github.com/2JYK/The-season-of-N.11_backend.git https://github.com/2JYK/The-season-of-N.11_frontend.git 유화 제작 서비스 ; 사용자가 입력한 사진에 사계절의 효과를 주어 업로드, 수정 및 삭제 를 할 수 있음 👩🏻‍💻 담당 파트 : 회원가입 | 로그인-JWT발급 | 유화 제작 인공지능 기술 | 마이페이지-업로드,북마크 사진 | 게시글 수정 및 삭제 🌱 6월 30일 ✔️ simplejwt 이용해서 로그인 ✔️ JWT 디코딩하여 회원정보 조회-수정-탈퇴 구현 ✔️ JWT 디코딩 대신 JWT 인증 방식 클래스 지정하여 코드 리팩토링 ✔..

PROJECTS 2022.07.01
반응형