TIL | Django - westargram - 1. 会員加入機能


💡 Django初期設定が完了したと仮定し、プロジェクトを続行します.初期設定はここで設定できます。
models.pyの作成
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で書かれていますが、PhoneFieldDateFieldがあります.PhoneFieldを調べたところ、あることがわかり、対応する場所を設けて使用しました.このためmodels.pyファイルにはPhoneFieldが導入されている.
views.pyの作成
def post(self, request):
         data          = json.loads(request.body)
         email_data    = data['email']
         password_data = data['password']
まず会員が入金し,postリクエストによりクライアントから送信されたjson形式の会員データをdictionary形式で受信して保存する.
if User.objects.filter(email = email_data).exists():
	return JsonResponse({'MESSAGE' : 'EMAIL ALREADY EXISTS'}, status = 400)
ユーザー・テーブルに既に存在するemailがemail_data(ユーザーが入力したemail)の場合、次の応答が返されます.( '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[email protected]cookie7989.comはこのように記述できない.したがって,この部分はPython正規式を用いて有効性検査を行うことができる.
Passwordも8文字以上の文字、数字、特殊文字の組み合わせであるべきです.これも正規表現で書くことができます.