Пример #1
0
def signin(request):
    if request.method=='GET':
        f=SigninForm()
        return render(request,'cl/signin.html',{'form':f})
    elif request.method=='POST':
        #회원조회 하는 함수를 사용해 아이디화 비민ㄹ번호가 동일한 회원이 있는지 확인
        #is_valid를 사용해 유효성 검사를 할 경우, 아이디 중복에 걸려 항상 False가 뜸
        #따라서 오류가 발생했을때만 입력을 전달바하기 위한 폼객체생성
        f=SigninForm(request.POST)
        #POST변수에서 직접 데이터 꺼내기(아이디,비밀번호)
        id=request.POST.get('username')
        pw=request.POST.get('password')
        #아이디랑 비밀번호가 일치하는 User모델클래스 객체 추출
        #authenticate(username,password): 비밀번호를 암호화하고 아이디와 암호화된 비밀번호가 일치하는 User객체 추출
        #단, 아이디나 비밀번호가 틀린경우 None값을 반환함
        u=authenticate(username=id,password=pw)
        #회원정보가 u변수에 들어있는경우
        if u:
            #로그인 처리
            #login(request,u): 해당 뷰를 요청한 클라이언트가 u에 저장된 User 객체정보를 저장하는 함수
            login(request,u)
            #nexturl: 이동할 URL주소를 저장하는 변수
            nexturl=request.POST.get('nexturl')
            if nexturl:
                return HttpResponseRedirect(nexturl)
            else:
                return HttpResponseRedirect(reverse('vote:index'))
        #회원정보가 u변수에 없는경우(None값이 있는경우)
        else:
            return render(request,'cl/signin.html',{'form':f,'error':'아이디 또는 비밀번호가 틀렸습니다'})
Пример #2
0
def signin(request):
    #GET방식 요청
    if request.method == "GET":
        #SigninForm 객체 생성 및 HTML파일 전달
        form = SigninForm()
        return render(request, 'cl/signin.html', {'form':form})
    #POST방식 요청
    elif request.method =="POST":
        #사용자 입력에서 id와 password부분을 추출
        id = request.POST.get('username')
        pw = request.POST.get('password')
        #유저 객체 추출(authenticate 함수 사용)
        #authenticate(username,password) : 비밀번호는 암호화 된 상태로
        #username과 비밀번호가 일치하는 User 객체 한 개를 추출하는 함수
        #만약, username이나 비밀번호가 틀린경우, None값을 반환함
        u = authenticate(username=id,password=pw)
        #유저가 데이터베이스에 있는지 확인
        if u:
            #로그인처리
            #login(클라이언트, User객체) : 해당 요청을 한 클라이언트가 User객체
            #정보로 로그인 됨. 로그인 된 클라이언트는 request.user변수를 사용해
            #로그인된 회원의 정보(first_name, username...)를 가져올 수 있음.
            #ex)로그인된 클라이언트의 이름정보를 추출 : request.user.first_name
            #비로그인상태의 클라이언트는 request.user에 None값이 저장되어 있음
            login(request,u)
            return HttpResponseRedirect('/vote/')
        #유저가 존재하지 않는경우
        else:
            #로그인페이지를 에러코드와 함께 전달
            form = SigninForm()
            return render(request,'cl/signin.html',{'form':form, 'error':'아이디나 비밀번호가 맞지않습니다.'})
Пример #3
0
def signin(request):
    if request.method == 'GET':
        f = SigninForm()
        return render(request, 'cl/signin.html', {'form': f})
    elif request.method == 'POST':
        #회원조회하는 함수를 사용해 아이디와 비밀번호가 같은 회원이 있는지 확인
        #아이디 중복에 걸려 항상 False가 뜸
        #따라서 오류가 발생했을 때 입력을 전달하기 위한 폼 객체 생성
        f = SigninForm(request.POST)
        #POST변수에서 직접 데이터 꺼내기(아이디, 비밀번호)
        id = request.POST.get('username')
        pw = request.POST.get('password')
        #아이디랑 비밀번호가 일치하는 User모델 클래스 객체 추출
        #아이디와 암호화된 비밀번호가 일치하는 User객체 추출
        #단 아이디나 비밀번호가 틀리면 None값을 반환함
        u = authenticate(username=id, password=pw)
        #회원정보가 u변수에 들어있을시
        if u:
            #로그인 처리
            #login(request, u):해당 뷰를 요청한 클라이언트가 u에 저장된 User 객체정보를 저장하는 함수
            login(request, u)
            #nexturl: 이동할 URL주소를 저장하는 변수
            nexturl = request.POST.get('nexturl')
            if nexturl:
                return HttpResponseRedirect(nexturl)
            else:
                return HttpResponseRedirect(reverse('vote:index'))
        #회원정보가 u변수에 없을시
        else:
            return render(request, 'cl/sign.html', {
                'form': f,
                'error': '아이디나 비밀번호가 틀림.'
            })
Пример #4
0
def signin(request):
    if request.method == 'GET':
        return render(request, 'cl/signin.html',
                      {'result': SigninForm().as_table()})
    if request.method == 'POST':
        #사용자가 아이디나 비밀번호 틀렸을 때 전달할 form객체
        form = SigninForm(request.POST)
        #아이디와 비밀번호 추출
        id = request.POST.get('username')
        pw = request.POST.get('password')

        #DB의 User 객체들 중 아이디와 암호화된 비밀번호가 같은 객체 추출
        #Django 함수 authenticate 사용
        user = authenticate(username=id, password=pw)
        print('DB에서 찾은 User객체 :', user)

        #추출한 User객체로 웹 클라이언트를 로그인 처리
        if user:  #DB에서 User객체를 찾았는지 확인
            #Django 함수 login 사용
            #login(request, 추출한 User객체)
            #로그인처리가 된 웹 클라이언트는 request.user를 사용할 수 있음
            login(request, user)
            #요청한 웹 클라언트가 로그인이 되어 있는지 확인하는 함수
            #request.user.is_authenticated()

            return HttpResponseRedirect(reverse('main'))
Пример #5
0
def signin(request):
    if request.method == "GET":
        return render(request, "cl/signin.html",
                      {'result': SigninForm().as_table()})
        #이번엔 한줄로 표현(이것이 최종 표현, 더이상 줄일 수 없다?) - 앞에서는 result에 할당하고 그것을 사용
    elif request.method == "POST":
        #is_valid는 회원가입시에 썼으니, 회원가입이 되어 있다면 is_valid는 False가 뜬다.
        #로그인 실패시 폼이 필요하다. (아이디나 비밀번호가 틀렸을때 전달할 form객체)
        form = SigninForm(request.POST)

        #아이디와 비밀번호 추출
        id = request.POST.get('username')  #request.POST는 딕셔너리 형태 이므로
        pw = request.POST.get('password')
        #데이터베이스에 User객체들 중 아이디와 암호화된 비밀번호가 같은 객체 추출
        user = authenticate(username=id,
                            password=pw)  #자동완성- 더블클릭을 통해 import처리 필요
        print('데이터베이스에서 찾은 User 객체 :', user)  #찾지 못하면 None을 갖는다.
        #웹 클라이언트를 추출한 User 객체로 로그인 처리
        #유저를 찾았으면 로그인 처리
        if user:  #객체가 있다 True / None 값이면 False
            #login(request, 추출한 user객체)
            #로그인처리가 된 웹클라이언트는 request.user를 사용할 수 있음
            # request.user.is_authenticated() : 해당 웹클라이언트가 로그인했으면 True, 안했으면 False
            # 함수 앞이 is_로 시작하면 True or False값으로 반환
            login(request, user)  #1번째 클라이언트에 대한 요청 2번째 어떤 유저정보로 로그인을 시킬거니?
            return HttpResponseRedirect(reverse('main'))
Пример #6
0
def signin(request):
    if request.method == "GET":
        return render(request, "cl/signin.html",
                      {'result': SigninForm().as_table()})
    elif request.method == "POST":
        #사용자가 아이디나 비밀번호가 틀렸을 때 전달할 form객체
        form = SigninForm(request.POST)
        #아이디와 비밀번호 추출
        id = request.POST.get('username')
        pw = request.POST.get('password')
        #데이터베이스에 User 객체들 중 아이디와 암호화된 비밀번호가 같은 객체 추출
        user = authenticate(username=id, password=pw)
        print('데이터베이스에서 찾은 User 객체 :', user)
        #웹클라이언트를 추출한 User객체로 로그인처리
        if user:  #데이터베이스에서 유저객체를 찾았는지 확인
            #login(request, 추출한 User객체)
            #로그인처리가 된 웹클라이언트는 request.user를 사용할 수 있음
            #request.user.is_authenticated() : 해당 웹클라이언트가 로그인 여부를 확인하는 함수
            login(request, user)
            return HttpResponseRedirect(reverse('main'))