회원가입이나 로그인을 할때
사용자가 좀 더 편리하게
서비스를 사용할 수 있도록
예외처리를 하는 작업을 한다.
error 메세지를 alert으로 띄우면
어떤 부분이 잘못되었는지를
쉽게 알 수 있기 때문에
사용자 친화적이라고 볼 수 있다.
회원가입/로그인 error 메세지 설정
views.py에서 html과 함께 error를 보내준다.
def sign_up_view(request):
if request.method == 'GET': # GET 메서드로 요청이 들어 올 경우
user = request.user.is_authenticated
if user:
return redirect('/')
else:
return render(request, 'user/signup.html')
elif request.method == 'POST': # POST 메서드로 요청이 들어 올 경우
username = request.POST.get('username','')
password = request.POST.get('password','')
password2 = request.POST.get('password2','')
bio = request.POST.get('bio','')
if password != password2:
return render(request, 'user/signup.html', {'error':'패스워드를 확인해주세요!'})
else:
if username == '' or password == '':
return render(request, 'user/signup.html', {'error':'사용자 이름과 비밀번호는 필수입니다!'})
exist_user = get_user_model().objects.filter(username=username)
if exist_user:
return render(request, 'user/signup.html', {'error':'이미 존재하는 사용자입니다!'})
else:
UserModel.objects.create_user(username=username, password=password, bio=bio)
return redirect('/sign-in')
패스워드가 일치하지 않을때, 사용자 이름과 패스워드가 공란일때,
이미 사용자 이름이 있을때(중복X),
로그인시 아이디와 비밀번호가 일치하지 않을때 등 사용하고
error를 싣어 보낼때에는 redirect가 아닌 render를 사용한다.
error를 넘겨받은 html에서는 template 언어로 에러를 표시해준다.
{% if error %}
<div class="alert alert-danger" rele="alert">
{{ error }}
</div>
{% endif %}
에러상태라면 넘겨받은 메세지가 출력된다👍