장고 오답노트

김엣취·2024년 9월 5일
0

etc.

목록 보기
10/21

웹 어플리케이션에서 쿠키(Cookie)의 주요 목적은 무엇인가요?

  • A) 사용자의 세션 데이터를 서버에 저장하기 위해
  • B) 사용자의 브라우저에 데이터를 저장하여 다음 방문시 사용하기 위해
  • C) 데이터베이스 쿼리를 최적화 하기 위해
  • D) 사용자의 암호를 안전하게 저장하기 위해

Django에서 사용자가 로그인할 수 있는 간단한 로그인 뷰를 작성하세요.

  • 사용자가 로그인 폼을 제출했을 때, 해당 사용자를 인증하고, 성공적으로 로그인할 경우 'home' 페이지로 리디렉션합니다.
  • 로그인 실패 시 다시 로그인 페이지로 리디렉션하며, 실패 메시지를 출력하세요.
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login

def login_view(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('home')
        else:
            messages.error(request, 'Invalid username or password')
            return redirect('login')
    return render(request, 'login.html')

입력한게 DB의 데이터와 일치한지 확인하고,
일치한다면 로그인시키고 home에 보냄

일치하지 않으면 에러메시지 띄우고 로그인 페이지로 다시 보냄.

메소드가 POST가 아니라면 로그인페이지로 다시 보냄

Update

def post_update(request, post_id):
    post = get_object_or_404(Post, pk=post_id) # 모두 정답
    post = get_object_or_404(Post, id=post_id) # 모두 정답
    post = Post.objects.get(pk=post_id) # 모두 정답
    post = Post.objects.get(id=post_id) # 모두 정답
    if request.method == 'POST':
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            form.save()
            return redirect('post_list')
    else:
        form = PostForm(instance=post)
    return render(request, 'posts/form.html', {'form': form})

Delete

def post_delete(request, post_id):
    post = get_object_or_404(Post, pk=post_id) # 모두 정답
    post = get_object_or_404(Post, id=post_id) # 모두 정답
    post = Post.objects.get(pk=post_id) # 모두 정답
    post = Post.objects.get(id=post_id) # 모두 정답
    if request.method == 'POST':
        post.delete()
        return redirect('post_list')
    return render(request, 'posts/confirm_delete.html', {'post': post})

0개의 댓글