def signup(request): if request.method == "GET": #SignupForm에서 입력할 수있는 공간을 input태그로 변환 result = SignupForm().as_table() return render(request, "cl/signup.html", {'result': result}) elif request.method == 'POST': form = SignupForm(request.POST) #사용자의 입력이 유효한 값이 있는지 확인 #-> is_valid() 함수 호출 결과가 True면 정상입력 # False면 유효하지 않은 값 #(아이디중복,이메일형식,비밀번호형식확인) if form.is_valid(): #is_valid함수의 결과가 True인 경우, #form.cleaned_data변수로 원본데이터를 접근할 수 있음 #비밀번호 란과 비밀번호 확인란이 같은값이 있는지 확인 if form.cleaned_data['password'] == form.cleaned_data[ 'password_check']: #User 객체 생성 및 데이터베이스에 저장 #User 모델클래스는 비밀번호가 원본데이터가 아닌 암호화된 데이터를 저장함 # 새로운 User 객체를 생성할때 원본 비밀번호를 암호화해 객체생성해주는 # 함수를 사용해야함. => User.objects.create_user 함수 #create_user(id문자열,이메일,원본비밀번호문자열) #->원본비밀번호는 암호화된상태로 새로운 User객체를 생성 및 반환 new_user = User.objects.create_user( form.cleaned_data['username'], form.cleaned_data['email'], form.cleaned_data['password']) #성과 이름 저장변수에 사용자입력을 대입 new_user.first_name = form.cleaned_data['first_name'] new_user.last_name = form.cleaned_data['last_name'] #변경된 사항을 데이터베이스에게 통보 new_user.save() #main 페이지로 이동 return HttpResponseRedirect(reverse('main'))
def signup(request): if request.method=='GET': f=SignupForm() return render(request,'cl/signup.html',{'form':f}) elif request.method=='POST': f=SignupForm(request.POST) #유효한 값으로 채워져있는지 확인 <아이디 중복,비밀번호 형식이 올바른지,이메일형식> if f.is_valid(): #is_vaiid가 True인 경우, cleaned_data변수로 사용자의 입력을 추출할수 있음 #비밀번호 확인란과 비밀번호가 같은지 확인 if f.cleaned_data['password_check']==f.cleaned_data['password']: #회원생성 ''' 회원생성을 위해 f.save()를 사용할 경우, 비밀번호가 암호화되지 않은 상태로 데이터베이스에 저장되기때문에 비밀번호 원본데이터가 저장되게 된다. 따라서 회원생성에 사용할수 있는 별도의 함수를 사용해야한다. User: auth 어플리케이션에 구현된 모델클래스 User.objects.create_user: 비밀번호를 암호화환 상태로 회원을 생성하는 함수 ''' new_user=User.objects.create_user(username=f.cleaned_data['username'], email=f.cleaned_data['email'], password=f.cleaned_data['password']) print("새 유저: ",new_user) new_user.last_name=f.cleaned_data['last_name'] new_user.first_name=f.cleaned_data['first_name'] #수정사항(성,이름변수 값 변경)을 데이터베이스에 반영 new_user.user.save() #회원생성 완료 HTML 전달 return render(request,'cl/signupcom.html',{'name':new_user.username}) #비밀번호입력이 다른경우에 대한 처리 else: return render(request,'cl/signup.html',{'form':f,'error':'비밀번호가 다릅니다!!'}) #사용자가 잘못된 정보를 입력했을 때 else: return render(request,'cl/signup.html',{'form':f,'error':'형식이 맞지않습니다'})
def signup(request): if request.method == 'GET': #SignupForm에서 입력할 수 있는 공간을 input태그로 변환 result = SignupForm().as_table() return render(request, 'cl/signup.html', {'result': result}) if request.method == 'POST': form = SignupForm(request.POST) #사용자의 입력이 유효한 값인지 확인(아이디 중복, 이메일 형식, 비밀번호 형식 등) #is_vaild로 확인하며, 함수 호출결과가 True면 정상입력, False면 유효하지 않은 값 if form.is_valid(): #is_vaild함수 결과가 True인 경우, form.cleaned_data변수로 원본데이터에 접근할 수 있음 #입력란에 python명령어를 입력하여 DB에 접근하는 상황 방지 #비밀번호란과 비밀번호 확인란이 같은값인지 확인 if form.cleaned_data['password'] == form.cleaned_data[ 'password_check']: #User 객체 생성 및 DB에 저장 #User 모델 클래스는 비밀번호가 원본데이터가 아닌 암호화 된 데이터를 저장함 #새로운 User객체를 생성할 때 원본 비밀번호를 암호화 하여 객체생성해주는 함수를 사용해야함 #따라서 User.objects.create_user함수를 사용 #create_user(id문자열, 이메일, 원본 비밀번호 문자열) #원본 비밀번호는 암호화된 상태로 새로운 User객체를 생성 및 반환 new_user = User.objects.create_user( form.cleaned_data['username'], form.cleaned_data['email'], form.cleaned_data['password'], ) #성과 이름 저장변수에 사용자 입력을 대입 new_user.first_name = form.cleaned_data['first_name'] new_user.last_name = form.cleaned_data['last_name'] #변경된 사항을 DB에게 통보 new_user.save() #main페이지로 이동 return HttpResponseRedirect(reverse('main'))
def signup(request): #GET 방식 요청 if request.method == "GET": #회원가입폼 객체 생성 및 HTML파일 전달 form = SignupForm() return render(request, 'cl/signup.html', {'form': form}) #POST 방식 요청 if request.method == "POST": #사용자 입력기반 회원가입폼 객체 생성 - 에러 발생시 사용할 객체 form = SignupForm(request.POST) #사용자 입력이 유효한지 확인(아이디중복,패스워드형식,이메일형식) #폼객체.is_valid(): 입력양식의 형태를 사용자가 잘 작성했는지 확인하는 함수 #True 를 반환한 경우: 사용자 입력이 유효한 값이 것을 확인. # 폼객체.cleaned_data[] 변수를 사용해 사용자 입력을 추출할 수 있음 #False 를 반환한 경우: 사용자가 올바른 입력을 할수 있도록 HTML코드를 전달 if form.is_valid(): #입력한 패스워드가 일치하는지 확인 if form.cleaned_data['password'] == form.cleaned_data[ 'password_check']: print(form.cleaned_data) #회원 생성 ''' 폼객체.save() 는 사용자 입력을 바탕으로 연동된 모델클래스 객체를 데이터베이스에 저장함 User 모델클래스에 password란은 원본 비밀번호를 저장하는 것이 아니 암호화된 빕밀번호를 저장해야되기 때문에, save() 함수를 사용할 수 없음 User 모델클래스에 있는 회원 생성함수을 사용해 새로운 회원을 데이터베이스에 만들수 있음. User.objects.create_user(아이디, 비밀번호,이메일) : 매개변수에 들어온 입력을 바탕으로 새로운 회원을 생성하는 함수 ''' #데이터베이스에 새로운 회원이 생성 및 new_user 변수에 User 객체가 저장됨 new_user = User.objects.create_user( username=form.cleaned_data['username'], email=form.cleaned_data['email'], password=form.cleaned_data['password']) print('회원가입 완료:', new_user) new_user.first_name = form.cleaned_data['first_name'] new_user.last_name = form.cleaned_data['last_name'] #변경사항(이름,성,변수 수정)을 데이터베이스에 반영 new_user.save() #다른 페이지나 HTML 파일 전송 return render(request, 'cl/signupcom.html', {'name': new_user.username}) else: #입력한 비밀번호가 틀린경우의 처리 return render(request, 'cl/signup.html', { 'form': form, 'error': '비밀번호가 다릅니다.' }) else: #사용자 입력이 올바르지 않은 경우의 처리 return render(request, 'cl/signup.html', { 'form': form, 'error': '형식에 맞지않는 입력을 했습니다.' })
def signup(request): if request.method == 'GET': f = SignupForm() return render(request, 'cl/signup.html', {'form': f}) elif request.method == 'POST': f = SignupForm(request.POST) #유효한 값으로 채워져있는지 확인 #(아이디 중복, 비밀번호 형식이 올바른지, 이메일형식) if f.is_valid(): #is_valid가 True인 경우, cleaned_data 변수로 #사용자의 입력을 추출할 수 있음 #비밀번호확인란과 비밀번호가 같은지 확인 if f.cleaned_data['password_check'] == f.cleaned_data['password']: #회원생성 """ 회원생성을 위해 f.save()를 사용할 경우, 비밀번호가 암호화되지 않은 상태로 데이터베이스에 저장되기 때문에 비밀번호 원본이 저장됨 따라서 회원생성에 사용할 수 있는 별도의 함수를 사용해야함 user : outh 어플리케이션에 구현된 모델클래스 User.objects.create_user : 비밀번호를 암호화된 상태로 회원을 생성하는 함수 """ new_user = User.objects.create_user( username=f.cleaned_data['username'], email=f.cleaned_data['email'], password=f.cleaned_data['password']) print('새 유저 : ', new_user) new_user.last_name = f.cleaned_data['last_name'] new_user.first_name = f.cleaned_data['first_name'] #수정사항(성, 이름 변수에 값변경)을 데이터베이스에 반영 new_user.save() return render(request, 'cl/signupcom.html', {'name': new_user.username}) else: #비밀번호입력이 다른경우에 대한 처리 return render(request, 'cl/signup.html', { 'form': f, 'error': '비밀번호가 다릅니다.' }) else: #유효하지 않은 입력값이 있을때의 처리 return render(request, 'cl/signup.html', { 'form': f, 'error': '형식이 맞지않습니다.' })
def signup(request): if request.method == 'GET': f = SignupForm() return render(request, 'cl/signup.html', {'form': f}) elif request.method == 'POST': f = SignupForm(request.POST) #유호한 값으로 채워져 있는지 확인 #(아이디 중복, 비밀번호 형식이 올바른지, 이메일 if f.is_valid(): #is_valud 가 True 인경우 cleaned_data 변수로 #사용자의 입력을 추출할 수 잇음 #비밀번호 확인한과 비밀번호가 같은지 확인 if f.cleaned_data['password_check'] == f.cleaned_data['password']: #회원생성 # User : auth 어플리케이션에 구현된 모델클래스 #User.objects.create_user : 비밀번호 를 암호화 한 상태로 회원을 생성하는 함수 new_user = User.objects.create_user( username=f.cleaned_data['username'], email=f.cleaned_data['email'], password=f.cleaned_data['password']) print('새 유저 : ', new_user) new_user.last_name = f.cleaned_data['last_name'] new_user.first_name = f.cleaned_data['first_name'] #수정사항(성, 이름 변수에 값 변경 ) 을 데이터베이스에 반영 new_user.save() # 회원 생성 완료 HTML 전달 return render(request, 'cl/signupcom.html', {'name': new_user.username}) #비밀 번호 입력이 다른 경우에 대한 처리 else: return render(request, 'cl/signup.html', { 'form': f, 'error': '비밀번호가 다릅니다.' }) #유효하지 않은 입력값이 있을 때의 처리 else: else: return render(request, 'cl/signup.html', { 'form': f, 'error': '형식 이 맞지 않습니다.' })
def signup(request): #GET 방식 요청 if request.method == "GET": #회원가입폼 객체 생성 및 HTML 파일 전달 form = SignupForm() return render(request, 'cl/signup.html', {'form': form}) #POST 방식 요청 if request.method == "POST": #사용자 입력기반 회원가입폼 객체 생성 - 에러발생시 사용할 객체 form = SignupForm(request.POST) #사용자 입력이 유효한지 확인(아이디중복,패스워드나 이메일 형식) #폼객체.is_valid() : 입력양식의 형태를 사용자가 잘 작성했는지 확인하는 함수 #True를 반환한 경우 : 사용자 입력이 유효한 값인 것을 확인, 폼객체.cleaned_date[] 변수를 사용해 사용자 입력을 추출 할 수 있음 #False를 반환한 경우 : 사용자가 올바른 입력을 할 수 있도록 HTML코드를 전달 if form.is_valid(): #중복 체크 #입력한 패스워드가 일치하는 지 확인 if form.cleaned_data['password'] == form.cleaned_data[ 'password_check']: print(form.cleaned_data) #회원 생성 ''' 폼객체.save()는 사용자 입력을 바탕으로 연동된 모델클래스 객체를 데이터베이스에 저장함 User 모델클래스에 password란은 원본 비밀번호를 저장하는 것이 아닌 암호화된 비밀번호를 저장해야하기 때문에 save()함수 사용 불가능 User 모델클래스에 있는 회원 생성 함수를 사용해 새로운 회원을 데이터베이스에 만들수 있음 User.objects.create_user(아이디, 비밀번호, 이메일) : 매개변수에 들어온 입력을 바탕으로 새로운 회원을 생성하느 함수''' new_user = User.objects.create_user( username=form.cleaned_data['username'], password=form.cleaned_data['password']) print('회원 가입 완료 : ', new_user) new_user.first_name = form.cleaned_data['first_name'] new_user.save() #다른 페이지나 HTML파일 전송 return render(request, 'cl/signupcom.html', {'name': new_user.username}) else: #입력한 비밀번호가 틀린경우 처리 return render(request, 'cl/signup.html', { 'form': form, 'error': '비밀번호가 다릅니다.' }) else: #사용자 입력이 올바르지 않은 경우 처리 return render(request, 'cl/signup.html', { 'form': form, 'error': '입력이 올바르지 않습니다.' })
def signup(request): if request.method == 'GET': f = SignupForm() return render(request, 'cl/signup.html', {'form': f}) elif request.method == 'POST': f = SignupForm(request.POST) #유효값으로 채워져있는지 확인(계정 중복, 비밀번호 방식이 올바른지, 이메일 방식) if f.is_valid(): #is_valid가 True인 경우, cleaned_data 변수로 사용자의 입력을 추출할 수 있음. #비밀번호 확인란과 비밀번호가 같은지 확인 if f.cleaned_data['password_check'] == f.cleaned_data['password']: #회원생성'username','password' ''' 회원생성을 위해 f.save()를 쓸 경우, 비밀번호가 암호회되지 않은 상태로 데이터 베이스에 저장되므로 비밀번호 원본이 저장됨. 따라서 회원생성에 사용할 수 있는 별도의 함수를 사용해야 함. User:auth 어플리케이션에 구현된 모델클래스 User.object.create_user : 비밀번호를 암호화한 상태로 회원을 생성하는 함수 ''' new_user = User.objects.create_user( username=f.cleaned_data['username'], email=f.cleaned_data['email'], password=f.cleaned_data['password']) print('새유저:', new_user) new_user.last_name = f.cleaned_data['last_name'] new_user.first_name = f.cleaned_data['first_name'] #수정사항(성, 이름 변수값변경)을 데이터 베이스에 반영 new_user.save() #회원생성 완로 html 전달 return render(request, 'cl/signupcom.html', {'name': new_user.username}) else: #비밀번호 입력이 다른 경우에 대한 처리 return render(request, 'cl/signup.html', { 'form': f, 'error': '비밀번호가 다름' }) else: #유효하지 않은 입력값이 있을 때의 처리 return render(request, 'cl/signup.html', { 'form': f, 'error': '형식이 다름' })
def signup(request): #Get - 사용자에게 빈 회원가입란을 제공하는 HTML파일 전달 if request.method == "GET": #SignupForm에서 입력할 수 있는 공간을 input태그로 변환 result = SignupForm().as_table() return render(request, "cl/signup.html", {'result': result}) #POST - 사용자 입력을 바탕으로 회원가입 진행 elif request.method == "POST": #사용자 입력을 바탕으로 객체 생성하고 form = SignupForm(request.POST) #사용자의 입력이 유효한 값이 있는지 확인(아이디 중목, e-mail 형식, 비밀번호 형식 확인) # -> is_valid() 함수 호출 결과가 True면 정상입력, False면 유효하지 않은 값 if form.is_valid(): #is_valid함수의 결과가 True인 경우, form.cleaned_data변수로 원본 데이터를 접근할 수 있음 #안그러면 회원가입란에 데이터베이스에 접근하는 문법을 치면 데이터가 수정이 되니까 #비밀번호 란과 비밀번호 확인란이 같은 값이 있는지 확인 if form.cleaned_data['password'] == form.cleaned_data[ 'password_check']: #User 객체 생성 및 데이터베이스에 저장 #노가다가 좀 필요함 #User 모델 클래스는 비밀번호가 원본데이터가 아닌 암호화된 데이터를 저장한다. #새로운 User 객체를 생성할때 원본 비밀번호를 암호화해 객체생성해주는 함수를 사용해야한다. # = > User.objects.create_user 함수를 사용하는 이유 #create_user(id문자열, 이메일, 원본비밀번호 문자열) # = > 원본 비밀번호는 암호화된 상태로 새로운 User객체를 생성 및 반환 new_user = User.objects.create_user( form.cleaned_data['username'], form.cleaned_data['email'], form.cleaned_data['password']) #성과 이름 저장변수에 사용자 입력을 대입 시킨다. new_user.first_name = form.cleane_data['first_name'] new_user.last_name = form.cleane_data['last_name'] #변경된 사항을 데이터베이스에게 통보 new_user.save() #main 페이지로 이동 return HttpResponseRedirect(reverse('main'))