[Mission 5] 회원가입 비밀번호 암호화 적용
·
wecode
mission 4 merge후 로컬 main에서 git pull origin main으로 로컬 main 업데이트후 main에서 새로운 브랜치 생성후 작업 암호화 적용 bcrypt 설치 bcrypt 라이브러리를 이용해서 암호화를 할 거라서 설치를 먼저 한다. pip install bcrypt views.py에서 사용할 수 있게 import # users.views.py import json, re, bcrypt 암호화된 비밀번호를 db에 저장할 수 있도록 코드 수정 class SignUpView(View): def post(self, request): try: data = json.loads(request.body) name = data['name'] email = data['email'] password..
[Mission 4] 로그인 기능 구현
·
wecode
pr이 머지되면 로컬 메인에서 git pull origin main으로 메인 업데이트 후, 로그인 기능을 구현할 브랜치를 생성해서 작업한다. git checkout -b feature/signin 로그인 view 기능 정의 로그인을 위한 View를 작성해야합니다. ****로그인 정보(이메일, 비밀번호) 계정이나 패스워드 키가 전달되지 않았을 경우, {"message": "KEY_ERROR"}, status code 400 을 반환합니다. class SignInView(View): # 로그인을 위한 SignInView를 정의 def post(self, request): # 로그인도 보통 post메서드를 이용한다. try: data = json.loads(request.body) email = data['e..
[Mission 3] 회원가입 기능 구현
·
wecode
pr이 merge되면 로컬 main에서 git pull origin main 으로 main을 업데이트 한 후 회원가입 기능을 개발할 브랜치를 만들어서 이동후 작업한다 git checkout -b feature/signup 회원가입 뷰 정의(views.py) 사용자 정보는 이름, 이메일, 비밀번호, 연락처(휴대폰), 그 외 개인정보를 포함한다. 이메일이나 패스워드가 전달되지 않을 경우, {"message": "KEY_ERROR"}, status code 400 을 반환 import json # 데이터를 주고받을때 제이슨 타입의 데이터를 주고받는데 파이썬에서 그 데이터를 사용하기 위해 파이썬에서 쓸 수 있는 형태로 바꿔주어야 한다. 그때 사용하는 패키지이다. from django.http import Jso..
[Mission 2] 모델링
·
wecode
회원가입과 로그인에 사용될 users테이블 모델링을 위해서 main에서 브랜치를 생성해주고 브랜치로 이동해서 user app을 생성한다. git checkout -b feature/models python manage.py startapp users 앱 이름으로 용도를 유추할 수 있도록 한다. 사용자와 관련된 기능을 구현할 앱을 만들거라서 users라고 한다. 앱을 만들면 settings.py에 추가해주어야 한다. 그렇지 않으면 인식하지 못한다 -> No installed app with label 'users'. # settings.py INSTALLED_APPS = [ ... 'users', ] 그리고 models.py를 작성해서 모델링을 한다. # models.py from django.db imp..
Code Kata | Week2 - Day5
·
wecode
문제 인자인 height는 숫자로 이루어진 배열입니다.그래프로 생각한다면 y축의 값이고, 높이 값을 갖고 있습니다. 아래의 그래프라면 height 배열은 [1, 8, 6, 2, 5, 4, 8, 3, 7] 입니다. https://storage.googleapis.com/replit/images/1555380144403_97221ca23fbb92beaae5b6c800ceb5c8.pn 저 그래프에 물을 담는다고 생각하고, 물을 담을 수 있는 가장 넓은 면적의 값을 반환해주세요. 가정 : 배열의 길이는 2이상입니다. 풀이 def get_max_area(height): max_area = 0 for i in range(len(height)-1): for j in range(i+1, len(height)): if ..
Code Kata | Week2 - Day4
·
wecode
문제 nums는 숫자로 이루어진 배열입니다. 가장 자주 등장한 숫자를 k 개수만큼 return 해주세요. nums = [1,1,1,2,2,3], k = 2 return [1,2] nums = [1] k = 1 return [1] 풀이 1-1 def top_k(nums, k): res = [] for i in range(k): max_num = max(nums, key=nums.count) res.append(max_num) for num in nums[:]: if num == max_num: nums.remove(num) return res max의 key 속성을 활용해서 제일 많이 등장한 숫자면 리스트에 넣고, 넣은 다음에 리스트에서 해당 숫자를 삭제했다. 그걸 k번 반복하고 리스트를 반환했다. 1-2..
Code Kata | Week2 - Day3
·
wecode
문제 s는 여러 괄호들로 이루어진 String 인자입니다. s가 유효한 표현인지 아닌지 true/false로 반환해주세요. 종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 있습니다. 아래의 경우 유효합니다. 한 번 괄호를 시작했으면, 같은 괄호로 끝내야 한다. 괄호 순서가 맞아야 한다. 예를 들어 아래와 같습니다. s = "()" return true s = "()[]{}" return true s = "(]" return false s = "([)]" return false s = "{[]}" return true 풀이 def is_valid(string): opening=['(', '[', '{'] closing=[')', ']', '}'] res='' for ch in st..
반응형