회원가입 기능 만들기
회원가입 페이지를 보여주는 sign-up GET 방식으로 화면을 보여줌.
가입 정보를 입력하고 전송하는 url은 동일한 sign-up 이지만 은 POST 방식으로 보내주도록 함
/GET은 대부분 값을 읽어올 때, POST는 값을 주거나 수정, 삭제를 요청할 때 사용/
유저 앱의 views.py sign_up_view에 POST 추가
htm에서 form 태그 속성에 method와 action 추가
유저 앱의 views.py에서 전송되는 데이터 받아서 각각 지정 후 리다이렉트 함수 사용
로그인 기능 만들기
세션: 사용자의 정보를 저장할 수 있음
유저 앱의 views 파일에 POST를 추가
# user/views.py
from django.http import HttpResponse
def sign_in_view(request):
if request.method == 'POST':
return HttpResponse("로그인 성공!")
elif request.method == 'GET':
return render(request, 'user/signin.html')
signin.html form 태그 수정. 폼 태그 내부의 username과 password를 input으로 받음
<form class="form-area" action="/sign-in/" method="post">
password와 username을 유저 앱의 view.py 파일의 sign_in_view 함수 내부에 작성
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("로그인 성공!")
else: # 로그인이 실패하면 다시 로그인 페이지를 보여주기
return redirect('/sign-in')
elif request.method == 'GET':
return render(request, 'user/signin.html')
회원가입 및 로그인 페이지 실행