登録の実装


会員加入機能の実施
인스타그램에 회원가입 할 때에는 전화번호, 사용자 이름 또는 이메일이 필수로 필요합니다.
인스타그램에 회원가입 할 때에는 비밀번호도 필수로 필요합니다.
이메일이나 패스워드 키가 전달되지 않았을 시, {"message": "KEY_ERROR"}, status code 400 을 반환합니다.
회원가입시 이메일을 사용할 경우, 이메일에는 @와 .이 필수로 포함되어야 합니다. 해당 조건이 만족되지 않을 시 적절한 에러를 반환해주세요. 이 과정을 email validation이라고 합니다.
회원가입시 비밀번호는 8자리 이상이어야만 합니다. 해당 조건이 만족되지 않을 시, 적절한 에러를 반환해주세요. 이 과정을 password validation이라고 합니다.
회원가입시 서로 다른 사람이 같은 전화번호나 사용자 이름, 이메일을 사용하지 않으므로 기존에 존재하는 자료와 중복되어서는 안됩니다. 적절한 에러를 반환해주세요.
회원가입이 성공하면 {"message": "SUCCESS"}, status code 200을 반환합니다.
userappを作成した後、まずuserのモデルを作成します.まずpyファイルに記入しました.
from django.db import models


class User(models.Model):
    user_name = models.CharField(max_length=20)
    user_phone_number = models.IntegerField()
    user_email = models.EmailField()
    user_password = models.CharField(max_length=20)

    class Meta :
        db_table = 'users'

유저의 이름(아이디)와 전화번호, 이메일, 패쓰워드를 받아 저장하는 모델을 생성 후 이제 데이터 베이스로 보낼 수 있게 views.py 를 작성해야한다!!
ユーザー・ビュー.pyの作成
from django.views import View
from .models import User
from django.http import JsonResponse
import json

class SignUpView(View):
# 먼저 클래스를 만들어 django의 view파일을 상속받는다.
    def post(self,request):
        signup_data = json.loads(request.body)
        #이제 post로 보내준 데이터를 signup_data로 저장하여 관리!

	 try:
     # 예외가 있을 수 있어 try를 사용하여 예외가 없을 경우 사용하는 로직을 작성합니다

            if User.objects.all().filter(user_name = signup_data["name"]).exists():
                return JsonResponse(
                { 'message: ' : 'ID already exists'}, status = 400)
                # 그 후 아이디 중복검사
            elif User.objects.all().filter(user_email = signup_data["email"]).exists():
                return JsonResponse(
                { 'message: ' : 'Email already exists'}, status = 400)
                #이메일 중복검사
            elif User.objects.all().filter(user_phone_number =
                    signup_data["phone_number"]).exists():
                return JsonResponse(
                { 'message : ' :'phone_number already exists'} , status = 400)
                #전화 번호 중복검사

            if User.objects.all().filter(
                user_email    = signup_data["email"],
                user_password = signup_data["password"]
                ).exists():
                return JsonResponse ( {"message: " : "KEY_ERROR"}, status = 400)
                #post로 보내준 데이터 중에 이메일과 패스워드가 필수 값으로 지정하여 만약 이 데이터가 없을 경우 KEY_ERROR를 발생하여 돌려줍니다
            elif  '@' not in signup_data["email"]  or '.' not in signup_data["email"] :
                return JsonResponse(
                    { "message: " : "Invalid email" }, status = 400 )
                    # 이메일 값에는 @ 와 . 이 필수값으로 지정하여 없을 경우 반환!!
            elif len(signup_data["password"]) < 8 :
                return JsonResponse(
                    { "message: " : "password validation" } , status = 400 )
                    # 패스워드는 8자리 이상만 가능하게 합니다

            User.objects.create(
                user_name         = signup_data["name"],
                user_email        = signup_data["email"],
                user_phone_number = signup_data["phone_number"],
                user_password     = signup_data["password"]
            )
            #위에 모든 조건이 충족되면 user 정보를 등록하여 회원가입!

            return JsonResponse ( { 'message: ' : 'SUCCESS'} , status = 200 )
      		# 회원가입 완료 ! (드디어...)
        except KeyError :
            return JsonResponse( {"message: " : "ERROR"} , status = 400 )
		# 예외로 가입이 안될 경우 error코드 출력합니다 (위의 조건이 만족하면 될 듯한데.. 여기는 더 공부해봐야겠네요)
        
        
  이제 회원 가입 로직 완료~~~~