登録の実装
会員加入機能の実施
인스타그램에 회원가입 할 때에는 전화번호, 사용자 이름 또는 이메일이 필수로 필요합니다.
인스타그램에 회원가입 할 때에는 비밀번호도 필수로 필요합니다.
이메일이나 패스워드 키가 전달되지 않았을 시, {"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코드 출력합니다 (위의 조건이 만족하면 될 듯한데.. 여기는 더 공부해봐야겠네요)
이제 회원 가입 로직 완료~~~~
Reference
この問題について(登録の実装), 我々は、より多くの情報をここで見つけました https://velog.io/@cs982607/clone-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol