ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 02. Django 간단한 로그인 페이지 구현
    toy_project 2022. 2. 21. 23:09
    728x90

    Django
    pip install Django
    python manage.py startproject mysite_login
    pthon manage.py startapp user
    -> 앱만들어줬으면 바로 setting.py에 앱추가 users
    유저는 장고에서 중요한 부분을 차지하고 여러부분에서 상호적으로 작용하는 부분이 많기 때문에
    setting.py에다가 어떤걸 주 베이스 유저로 쓸건지 말을 해줘야한다
    AUTH_USER_MODEL = 'user(앱이름).User'
    python manage.py makemigrations > 모델에 저장 예정을 장고에게 알려줌
    AbtractUser에서 기본적으로 제공해주는 모델들을 볼 수 있음
    python manage.py migrate > db에 실제 테이블 생성시키기
    abstractUser
    ->장고에서 기본적으로 제공하는 유저에 관한 기능들을 전부 포함한 유저 모델을 만들 수 있다

     

    from django.db import models
    from django.contrib.auth.models import AbstractUser
    
    # AbstractUser를 상속 받은 클래스 만들기
    # 장고에서 기본적으로 제공하는 유저에 관한 기능들을 전부 포함한 유저 모델을 만들 수 있다
    class User(AbstractUser):
        student_id = models.CharField(max_length=10)
    from django.shortcuts import render, redirect
    from django.contrib.auth import authenticate, login, logout
    from .models import User
    # Create your views here.
    
    def login_view(request):
        # 제출 버튼을 눌렀을 때 post로 request가 들어왔을 때
        if request.method == "POST":
            username = request.POST["username"]
            password = request.POST["password"]
            user = authenticate(username=username, password=password)
            if user is not None:
                print("인증성공")
                login(request, user)
            else:
                print("인증실패")
        return render(request, "users/login.html")
    
    def logout_view(request):
        logout(request)
        #
        return redirect("users:login")

    간단한 로그인 화면이고 request로 받은 결과를 models에 저장할 수 있음

    회원가입을 누르면 새로운 html로 넘어감

    각 폼에 맞춰서 데이터를 입력하면 입력값들이 models의 칼럼에 맞춰 저장을 시킬 수 있음

     

    def signup_view(request):
    
        if request.method == "POST":
            username = request.POST['username']
            password = request.POST['password']
            firstname = request.POST['firstname']
            lastname = request.POST['lastname']
            email = request.POST['email']
            student_id = request.POST['student_id']
    
            user = User.objects.create_user(username=username, password=password, first_name=firstname,
                                     last_name=lastname, email=email, student_id=student_id)
            user.save()
            # 회원가입이 끝난 다음에는 로그인하는 화면으로 넘겨줌
            return redirect("users:login")
    
        return render(request, "users/signup.html")

     

    728x90

    'toy_project' 카테고리의 다른 글

    04. DRF로 웹 만들어보기 : 기획  (0) 2022.02.25
    03. docker 사용해보기  (0) 2022.02.25
    01. instagram_crawler  (0) 2022.02.15
    00. instagram crawler  (0) 2022.02.15
    MBTI별 특징 데이터로 확인하기 - 개발 공부  (0) 2022.01.16
Designed by Tistory.