[Django]会員加入と登録ver.2
1.会員加入+確認。py import json
from django.views import View
from django.http import JsonResponse
from django.db import IntegrityError
from django.core.exceptions import ValidationError
from users.models import User
from users.validation import validate_check
class SignUpView(View):
def post(self, request):
data = json.loads(request.body)
try:
data = json.loads(request.body)
user_name = data['name']
user_email = data['email']
user_password = data['password']
user_phone = data['phone']
user_create = User(
name = user_name,
email = user_email,
password = user_password,
phone = user_phone,
)
validate_check(
user_email,
user_password,
)
user_create.full_clean()
user_create.save()
return JsonResponse({'message':'SUCCESS'}, status=201)
except IntegrityError:
return JsonResponse({'message':'Duplicated Email exists'}, status=401)
except KeyError:
return JsonResponse({'message':'KEY_ERROR'}, status=400)
except ValidationError as e:
return JsonResponse({'message':e.messages}, status=400)
-> except ValidationError as e
:
=({"message":e.(複数の属性が存在する)、status=()
=さまざまなプロパティを使用して、さまざまな形式のエラーメッセージまたは情報を表示できます.
= validation.pyからhireへのValidationError(複数の条件で区切られた)を設定する場合、Json形式で各メッセージを表示する場合は、「as e:」と「e.()」を使用します.
=shellで次の練習を行うことができます.try:
raise ValidationError('asdf')
except ValidationError as e:
* print(e.__dir__()) <-- 'dir'은 'e.' 가 가진 모든 속성을 나열한다
->前述したように、予想される特定のエラーモデル.pyでビューをプリセットすることもできます.pyをもっときれいに整理することができます.
-->IntegratyErrorはDBに関するエラー...;無知なグーグルの弊害といえる.その後、例外文を削除しif文を追加し、重複電子メールチェックに適用します.class SignInView(View):
def post(self, request):
try:
data = json.loads(request.body)
user_email = data['email']
user_password = data['password']
if not User.objects.filter(email=user_email, password=user_password).exists():
return JsonResponse({'message':'INVALID_USER'}, status=401)
return JsonResponse({'message':'SUCCESS'}, status=200)
except KeyError:
return JsonResponse({'message':'KEY_ERROR'}, status=400)
Reference
この問題について([Django]会員加入と登録ver.2), 我々は、より多くの情報をここで見つけました
https://velog.io/@_ted_0527_/Django-회원가입-및-로그인ver.2
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import json
from django.views import View
from django.http import JsonResponse
from django.db import IntegrityError
from django.core.exceptions import ValidationError
from users.models import User
from users.validation import validate_check
class SignUpView(View):
def post(self, request):
data = json.loads(request.body)
try:
data = json.loads(request.body)
user_name = data['name']
user_email = data['email']
user_password = data['password']
user_phone = data['phone']
user_create = User(
name = user_name,
email = user_email,
password = user_password,
phone = user_phone,
)
validate_check(
user_email,
user_password,
)
user_create.full_clean()
user_create.save()
return JsonResponse({'message':'SUCCESS'}, status=201)
except IntegrityError:
return JsonResponse({'message':'Duplicated Email exists'}, status=401)
except KeyError:
return JsonResponse({'message':'KEY_ERROR'}, status=400)
except ValidationError as e:
return JsonResponse({'message':e.messages}, status=400)
try:
raise ValidationError('asdf')
except ValidationError as e:
* print(e.__dir__()) <-- 'dir'은 'e.' 가 가진 모든 속성을 나열한다
class SignInView(View):
def post(self, request):
try:
data = json.loads(request.body)
user_email = data['email']
user_password = data['password']
if not User.objects.filter(email=user_email, password=user_password).exists():
return JsonResponse({'message':'INVALID_USER'}, status=401)
return JsonResponse({'message':'SUCCESS'}, status=200)
except KeyError:
return JsonResponse({'message':'KEY_ERROR'}, status=400)
Reference
この問題について([Django]会員加入と登録ver.2), 我々は、より多くの情報をここで見つけました https://velog.io/@_ted_0527_/Django-회원가입-및-로그인ver.2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol