Python
[Django] ver.3 피드백 모음
이전 ver.3 포스팅 https://dingwan0331.tistory.com/100 [Django] Westagram 회원가입 기능 작성해보기 ver.2 이번에는 저번에 블로깅한 View의 다른버전입니다. 기본적인 흐름은 아래와같습니다. 유효성검사를 modules로 구현 직접 모듈 내에서 return이 아닌 raise로 예외발생 except란에 각 예외별로 리턴값을 dingwan0331.tistory.com 1.모듈 import의 구분 import하는 Package들은 크게 3가지로 분류합니다. 첫번째: 내장 package 두번째: pip로 install 한 외부 package 세번째: 직접 작성한 package 이렇게 분류에 별로 분리해서 공백 1줄을 줘서 공백을 맞춰줍니다. from django..
[Django] Westagram 회원가입 기능 작성해보기 ver.3
자 이번엔 ver.3입니다. 주말기간이라 멘토님들의 피드백없이 혼자의 생각으로 수정한것이라 도찐개찐느낌일 수 있습니다. 지난번에는 수많은 except 클래스구현과 예외처리가 불필요하다 생각 되었습니다. 우선 ver.3 에는 따로 모듈을 만들어서 진행하지 않았습니다. DB역시 이전과 동일합니다. views.py 코드 class SingUpView(View): def post(self, request): try: data = json.loads(request.body) username = data['username'] first_name = data['first_name'] last_name = data['last_name'] email = data['email'] password = data['passwo..
[Django] Westagram 회원가입 기능 작성해보기 ver.2
이번에는 저번에 블로깅한 View의 다른버전입니다. 기본적인 흐름은 아래와같습니다. 유효성검사를 modules로 구현 직접 모듈 내에서 return이 아닌 raise로 예외발생 except란에 각 예외별로 리턴값을 작성 예외를 종류별로 나누기위한 Exceptions.py 생성 폴더 구조는 아래와 같습니다. 모듈 설명 exceptions.py 우선 코드먼저 보여주는게 좋을 것 같습니다. class EmailDuplicateError(Exception): pass class EmailRegexError(Exception): pass class PasswordRegexError(Exception): pass class PasswordLengthError(Exception): pass class PhoneNum..
[Django] Westagram 회원가입 기능 작성해보기 ver.1
Models.py 셋팅 Views.py 내용 class UserView(View): def post(self, request): try: data = json.loads(request.body) username = data['username'] first_name = data['first_name'] last_name = data['last_name'] email = data['email'] password = data['password'] phone_number = data['phone_number'] EMAIL_REGEX = '^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$' PHONE_NUMBER_REGEX = '\d{3}-\d{3,4}-\d{4}' PASSW..
lambda expressions & list Comprehensions (set,tuple,dict)
lambda expressions (람다 표현식) lambda x : x+1 lambda parameter : 코드 이런 형태의 표현식이다. 함수와 동일한구조지만 차이점은 명확하다. 람다는 이름이없다. 람다는 한줄의 인라인형태이다. 표현식 내부에서 변수를 만들 수 없다. 그렇다면 왜 사용할까?! 함수를 사용해야하지만 복잡한구조를 지니지 않을때 인라인으로 활용하여 코드의 수를 줄일 수 있다. lambda 와 함수의 구조 비교해보기 함수 def 함수이름(parameter): 코드 return 반환값 람다식 lambda parameter : 코드 return 이 없으며 함수 이름이 없다 실전예제를 들어보자 함수 def plus(a,b): a = (a+b)*10 return a 람다식 lambda a,b : (..
[Django] QuerySet 기본적인 속성과 Field lookups
Object 타입 단일 객체 타입으로 DB의 하나의 Row라고 생각하면된다. QuerySet이란 뭘까!? 여러개의 QueryObject로 이루어져있으며 아래와같은 형태를 보여준다. QuerySet의 속성 QuerySet은 보이는것과 같이 리스트와 굉장히 흡사한 특성을 지니고 있다. 1. iteration : QuerySet은 반복가능한 객체이다. 2.indexing * slicing : 리스트와 똑같이 인덱싱슬라이싱이 가능하며 3.pickling/caching 4.repr() 5.len() : len을 하면 안에 있는 objects의 갯수가 나오지만 count()메소드를 사용하는것이 더 편하다. 6.list() : 쿼리셋을 리스트화 시킬수있다 반환결과는 아래와 같다. list() #결과 [, , ] 7...