[장고 기초]2주차 과제
2022. 9. 23. 13:13ㆍ스파르타코딩클럽[AI트랙 3기]/장고
1)아이디 중복 안되게 하기
▶내가 짠 코드
def sign_up_view(request):
if request.method == 'GET':
return render(request, 'user/signup.html')
elif request.method == 'POST':
username = request.POST.get('username',None)
password = request.POST.get('password',None)
password2 = request.POST.get('password2',None)
bio = request.POST.get('bio',None)
if new_user.username == username:
return render(request, 'user/signup.html')
else:
if password != password2:
return render(request,'user/signup.html')
else:
new_user = UserModel()
new_user.username = username
new_user.password = password
new_user.bio = bio
new_user.save()
return redirect('/sign-in')
▶정답 코드
def sign_up_view(request):
if request.method == 'GET':
return render(request, 'user/signup.html')
elif request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
password2 = request.POST.get('password2', None)
bio = request.POST.get('bio', None)
if password != password2:
return render(request, 'user/signup.html')
else:
exist_user = UserModel.objects.filter(username=username)
if exist_user:
return render(request, 'user/signup.html') # 사용자가 존재하기 때문에 사용자를 저장하지 않고 회원가입 페이지를 다시 띄움
else:
new_user = UserModel()
new_user.username = username
new_user.password = password
new_user.bio = bio
new_user.save()
return redirect('/sign-in')
> 다입력해주고 비밀번호도 확인해줌. 마지막에 exist_user 해서 filter써주고, 조건문 붙인다.
2)아이디 입력시 아이디 출력되게 하기
▶내가 짠 코드
def sign_in_view(request):
if request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
me = UserModel.objects.get(username=username)
if me.password == password:
request.session['user'] = me.username
return HttpResponse({username})
else:
return redirect('/sign-in')
▶정답 코드
def sign_in_view(request):
if request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
me = UserModel.objects.get(username=username) # 사용자 불러오기
if me.password == password: # 저장된 사용자의 패스워드와 입력받은 패스워드 비교
request.session['user'] = me.username # 세션에 사용자 이름 저장
return HttpResponse(me.username)
else:
return redirect('/login')
elif request.method == 'GET':
return render(request, 'user/signin.html')
>redirect와 render의 차이점은 무엇인가...
'스파르타코딩클럽[AI트랙 3기] > 장고' 카테고리의 다른 글
| [장고기초]4주차 (0) | 2022.09.28 |
|---|---|
| [장고기초]3주차 (0) | 2022.09.23 |
| [장고기초] 2주차 (1) | 2022.09.23 |
| [장고_기초] 1주차 과제 (1) | 2022.09.23 |
| [장고 기초] 1주차 (1) | 2022.09.23 |