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 |
댓글