본문 바로가기
코딩공부

Django 공부2 / TIL_220926

by Dong_Devlog 2022. 9. 26.
render, redirect, AbstrucUser, auth, @login_required

 

  • render : 불러오고 싶은 템플릿을 기재해준다. 즉, 화면에 html 파일을 띄움

로그인 한 사용라면 render 값을 리턴함으로 'tweet/home.html' 값을 화면에 출력

from django.shortcuts import render, redirect

def tweet(request):
    if request.method == 'GET':
        user = request.user.is_authenticated
        if user:	# 로그인 한 사용자라면
            all_tweet = TweetModel.objects.all().order_by('-created_at')
            return render(request, 'tweet/home.html', {'tweet': all_tweet})

 

  • redirect : 어느 URL로 이동할지 정하게 된다.

로그인이 되어 있지 않다면 다시 로그인 URL로 이동

def tweet(request):
    if request.method == 'GET':
        user = request.user.is_authenticated
        if user:  # 로그인 한 사용자라면
            all_tweet = TweetModel.objects.all().order_by('-created_at')
            return render(request, 'tweet/home.html', {'tweet': all_tweet})
        else:  # 로그인이 되어 있지 않다면
            return redirect('/sign-in')

 

  • AbstracUser : 장고에서 기본적으로 제공되는 로그인 기능

AbstracUser를 통해 사용자의 id, username, email, password 등의 정보 저장하는 DB 테이블을 만들 수 있다.

from django.contrib.auth.models import AbstractUser

class UserModel(AbstractUser):
    class Meta:
        db_table = "my_user"

 

  • auth : 장고의 기능으로 사용자를 불러와 POST를 통해 DB에 저장되어 있는 정보와 비교
from django.contrib import auth

me = auth.authenticate(request, username=username, password=password)

 

  • @login_required : 로그인 한 사용자만 접근 할 수 있게 해주는 기능

로그인을 한 사용자만 로그아웃을 할 수 있도록 @login_required 기능을 사용한다.

from django.contrib.auth.decorators import login_required

@login_required
def logout(request):
    auth.logout(request)
    return redirect("/")

'코딩공부' 카테고리의 다른 글

Django AbstracUser / TIL_220928  (0) 2022.09.28
VScode Django를 위한 가상환경 구축 / TIL_220927  (0) 2022.09.27
Django 공부1 / TIL_220923  (0) 2022.09.23
Django 구조 / TIL_220922  (0) 2022.09.22
Django 란? / TIL_220921  (0) 2022.09.21

댓글