ACHO.pk devlog

[멋쟁이사자처럼10기] Django 개발자 대나무숲 프로젝트(회원가입) 본문

멋쟁이사자처럼

[멋쟁이사자처럼10기] Django 개발자 대나무숲 프로젝트(회원가입)

Acho 2022. 7. 11. 23:15

 

회원가입

 

acoounts/login.html

  • 'Create an Account! ' 를 클릭했을 때 signup이라는 url로 이동한다.
<div class="text-center">
	<a class="small" href="{% url 'signup' %}">Create an Account!</a>
</div>

 

myproject/urls.py

from accounts import views as accounts_views

urlpatterns = [
	path('signup/', accounts_views.signup, name='signup'),
]

 

 

register.html

  • register.html에서 template 언어를 이용해서 static를 설정해준다.
  • ✨✨<form class="user" method = "POST">✨✨
<form class="user" method = "POST">
	<div class="form-group row">
		{% csrf_token %}
	</div>
	<div class="form-group">
	<input type="text" name ="username" class="form-control form-control-user" id="exampleInputEmail"
		placeholder="Enter Your ID..">
	</div>
	<div class="form-group row">
		<div class="col-sm-6 mb-3 mb-sm-0">
			<input type="password" name ="password" class="form-control form-control-user"
				id="exampleInputPassword" placeholder="Password">
		</div>
		<div class="col-sm-6">
		<input type="password" name ="repeat" class="form-control form-control-user"
			id="exampleRepeatPassword" placeholder="Repeat Password">
		</div>
	</div>
	<input type ="submit" class="btn btn-primary btn-user btn-block" value ="회원가입">
	<hr>               
</form>
#회원가입 창에서 내 계정이 존재한다면 login 창으로 이동함
<div class="text-center">
	<a class="small" href="{% url 'login' %}">Already have an account? Login!</a>
</div>

아이디 입력 창

  • type : text 
  • name : username

비밀번호 입력 창

  • type : password
  • name :  password

비밀번호 재입력 창

  • type : password
  • name : repeat

 

acoounts/views.py

  • 회원가입을 할 때 비밀번호 입력 창에 입력된 값과 비밀번호 재입력 창에 입력된 값이 같을 때는 회원가입 가능, 동일하지 않을 때는 회원가입 불가능
  • POST로 받아온 데이터 중에서 password에 저장된 값과 repeat에 저장된 값이 동일하다면, 회원가입을 진행한다.
from django.contrib.auth.models import User

def signup(request):
    if request.method == "POST":
        if request.POST['password'] == request.POST['repeat']:
            # 회원가입
            new_user = User.objects.create_user(username=request.POST['username'], password=request.POST['password'])
            # 로그인
            auth.login(request, new_user)
            # 홈 리다이렉션
            return redirect('home')
    return render(request, 'register.html')

중간에 생긴 에러

You have multiple authentication backends configured and therefore must provide the `backend` argument or set the `backend` attribute on the user.

 

아래 좋은 글을 보고 해결할 수 있었다.

 

https://ghqls0210.tistory.com/49#comment9181148

 

django / multiple authentication backends 에러 처리

소셜로그인 때부터 이 녀석이 떠서 뭔지 정리해보았습니다. You have multiple authentication backends configured and therefore must provide the `backend` argument or set the `backend` attribute on the u..

ghqls0210.tistory.com


회원가입 창

 

회원가입 성공

 

Comments