보통 웹 사이트를 보면, 로그인을 한 후에는 로그인 화면이 뜨지 않는다. 이건 당연한거 같지만 사실 이것도 엄연한 프로그래밍의 일종이다.
장고에서 로그인 view를 짜다 보면 해당 기능을 넣어줘야 한다.
예시로 코드 하나를 들면
user = request.user.is_authenticated
if user: #로그인이 되어 있을때
return redirect('/')
else: #로그인이 되어 있지 않을때
return render(request, 'user/signin.html')
user.is_authenticated 란? django에서 기본적으로 제공하는 인증 기능이다.
user.is_authenticated는 해석하면 인증이 되어 있다면 이다.
위 코드는 로그인이 되어 있다면 / url로 연결시켜줄 것이고, 되어있지 않다면 user/signin.html 로 연결시켜 줄 것이다.
user.is_authenticated 의 반대 기능인 anonymous를사용해 코드를 바꿔보았다.
user = request.user.is_anonymous
if user: #로그인이 되어 있지 않을때
return render(request, 'user/signin.html')
else: #로그인이 되어 있을때
return redirect('/')
이렇게 바꿀수 있다.
user.is_anonymous는 말 그대로 로그인이 되어 있지 않다면 이라는 뜻이다. user.is_authenticated와 반대로 작동한다는 의미이다. 아래의 if문도 바꿔주면 동일하게 작동한다.
'TTL > 5주차 ~ 8주차 TIL (9.26 ~ 10.21)' 카테고리의 다른 글
| 2022-10-18 TIL (장고 회원가입 이메일 인증 기능) (0) | 2022.10.19 |
|---|---|
| 2022-10-17 TIL (Git 커밋 되돌리기) (0) | 2022.10.18 |
| 2022-10-13 TIL (yolo를 활용한 사물인식 응용) (0) | 2022.10.13 |
| 2022-10-12 TIL (사물 인식) (0) | 2022.10.12 |
| 2022-10-11 TIL (Anaconda 아나콘다 가상환경 설정) (0) | 2022.10.11 |