본문 바로가기
Django

장고 4

by 이성호 2022. 1. 21.

회원가입 기능 만들기

 

회원가입 페이지를 보여주는 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')

회원가입 및 로그인 페이지 실행

'Django' 카테고리의 다른 글

장고 3  (0) 2022.01.20
장고 2  (0) 2022.01.20
장고 1  (0) 2022.01.20