[장고 기초]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