TIL | Django - westargram - 1. 회원가입 기능

송치헌·2021년 8월 23일
0

TIL | Wecode - Django

목록 보기
11/18
post-thumbnail

💡 django 초기 세팅이 끝났다고 가정하고 프로젝트를 진행합니다. 초기 세팅은 여기서 설정할 수 있습니다.

models.py 작성


first_name    = models.CharField(max_length = 10)
last_name     = models.CharField(max_length = 10)
email         = models.EmailField(max_length = 50)
password      = models.CharField(max_length = 100)
phone_number  = PhoneField()
gender_choice =(('M', 'Man'),
                ('W', 'Woman'))
gender        = models.CharField(max_length = 1,choices    = gender_choice)
birth         = models.DateField()

다음과 같은 필드를 작성했다. 대부분 CharField로 작성했지만, PhoneFieldDateField가 있다.
PhoneField는 혹시나 있나해서 찾아봤는데 있길래 해당 필드를 설치하여 사용하였다. 그래서 models.py파일에 PhoneField를 import하여 사용하였다.

views.py 작성


def post(self, request):
         data          = json.loads(request.body)
         email_data    = data['email']
         password_data = data['password']

먼저 회원가입이므로 post 요청으로, client가 보내준 json형식의 회원 데이터를 dictionary형식으로 받아와서 저장해준다.

if User.objects.filter(email = email_data).exists():
	return JsonResponse({'MESSAGE' : 'EMAIL ALREADY EXISTS'}, status = 400)

User 테이블에서 email이 email_data(사용자가 입력한 email)인것이 이미 존재하면 아래와 같은 Response를 반환한다.('MESSAGE' : 'EMAIL ALREADY EXISTS', status code 400)

if EmailValidation(email_data):
	return JsonResponse({'MESSAGE' : 'EMAIL VALIDATION ERROR'}, status = 400)

if PasswordValidation(password_data):
	return JsonResponse({'MESSAGE' : 'PASSWORD VALIDATION ERROR'}, status = 400)

Email과 Password는 유효성 검사를 통해서 통과하지 않으면 에러가 났다는 메세지를 띄운다.

Email은 <user email id>@<domain name>.<root domain name> 이런 형식이 유지되어야 한다. 예를 들어, hprp1234@gmail, irum123@.com, cookie7989.com 이런 식으로 작성되면 안된다. 따라서 이 부분은 파이썬 정규식을 이용해서 유효성 검사를 진행하면 된다.

Password도 8자 이상인 문자, 숫자, 특수문자의 조합으로 만들어야 한다. 이것도 똑같이 정규표현식을 이용하여 작성하면 된다.

profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글