[Westagram]Mission 3:会員収入
[タスク3]会員加入機能の実施
会員入金機能を実現するためにtry,exception文を使用して条件を指定し,条件に合致しない場合はtry,exceptionを作成した.
Eメールには
@
と.
が必要です.パスワードには8桁以上の文字、アルファベット、数字、特殊文字が必要です.入力したemal/passwordと比較して、条件を満たさない場合はValidaton Errorを作成します.REGEX_EMAIL = r'^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
REGEX_PASSWORD = r'^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$'
class SignUpView(View) :
def post(self, request) :
try:
data = json.loads(request.body)
email = data['email']
password = data['password']
if not re.match(REGEX_EMAIL, email) :
raise ValidationError('email format is not valid')
if not re.match(REGEX_PASSWORD, password) :
raise ValidationError('password format is not valid')
会員登録時に異なる人が同じEメールを使用しないため、フィルタを使用して新しく入力したEメールをデータベース内のEメールと比較し、ValidationErrorが存在することを確認します.if User.objects.filter(email = email).exists() :
raise ValidationError('Email already exists')
会員が加入に成功すると、名前、電子メール、パスワード、連絡先(携帯電話)、ニックネームが作成され、成功メッセージおよびステータスコード201が返される. User.objects.create(
name = data['name'],
email = data['email'],
password = data['password'],
phone = data['phone'],
nickname = data.get('nickname', '')
)
return JsonResponse({"message" : "SUCCESS"}, status=201)
Eメールまたはパスワードが送信されていない場合は、KEYERORメッセージとstatus code 400が返されます.except KeyError :
return JsonResponse({"message" : "KEY_ERROR"}, status = 400)
ValidationErrorの場合、as e:転送のために各状況にメッセージを作成します.except ValidationError as e :
return JsonResponse({"message" : e.message}, status = 400)
完全なコードは次のとおりです.正規表現で比較した部分を確認します.pyを用いてモジュール化した.
validation.py
views.py
Reference
この問題について([Westagram]Mission 3:会員収入), 我々は、より多くの情報をここで見つけました https://velog.io/@whytili/Westagram-Mission3-4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol