💡 django 초기 세팅이 끝났다고 가정하고 프로젝트를 진행합니다. 초기 세팅은 여기서 설정할 수 있습니다.
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
로 작성했지만, PhoneField
와 DateField
가 있다.
PhoneField
는 혹시나 있나해서 찾아봤는데 있길래 해당 필드를 설치하여 사용하였다. 그래서 models.py
파일에 PhoneField
를 import하여 사용하였다.
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자 이상인 문자, 숫자, 특수문자의 조합으로 만들어야 한다. 이것도 똑같이 정규표현식을 이용하여 작성하면 된다.