django 2주 숙제

Grace Goh·2022년 9월 29일
0

Django

목록 보기
9/32

2주 목표

# 명령어

django admin startapp # app 생성: tweet, user
makemigrations
migrate
  • admin 화면 <- DB모델 생성해 추가
  • 사용자 요청방식에 따라 GET/POST 분리해서 views 파일의 함수 안에서 분리해서 처리할 수 있도록
  • 로그인, 회원가입

숙제

강의자료 참고

1. 회원가입 ID 중복방지 : if문 사용

# user/views.py

from django.shortcuts import render, redirect
from .models import UserModel


def sign_up_view(request):
    if request.method == 'GET':
        return render(request, 'user/signup.html')
    elif request.method == 'POST':
        username = request.POST.get('username', None)
        password = request.POST.get('password', None)
        password2 = request.POST.get('password2', None)
        bio = request.POST.get('bio', None)

        if password != password2:
            return render(request, 'user/signup.html')
        else: # 여기서부터 수정된 부분
            exist_user = UserModel.objects.filter(username=username)
            
            if exist_user:
                return render(request, 'user/signup.html') # 사용자가 존재하기 때문에 사용자를 저장하지 않고 회원가입 페이지를 다시 띄움
            else:
                new_user = UserModel()
                new_user.username = username
                new_user.password = password
                new_user.bio = bio
                new_user.save()
                return redirect('/sign-in')

2. HttpResponse 사용해서 화면에 사용자 이름 출력 (웰컴 메시지)

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(me.username) # ("로그인 성공!")에서 변경
        else:
            return redirect('/login')
            
    elif request.method == 'GET':
        return render(request, 'user/signin.html')
profile
Español, Inglés, Coreano y Python

0개의 댓글