Progateで作ったWebアプリをDjangoで作ってみる2! Part4 -ログアウト機能編-


目標物の確認

ProgateのNode.jsコースで作ったブログアプリと同じものをDjangoで作ってみます。

Djangoでのアプリ開発の一連の流れを整理するために記していきます。

完成イメージ

ログアウト機能の実装

ログアウトボタンをクリックすることによってurl→viewの順にコードが実行されていき、viewの中でログアウトをするための処理を行います。その上でログインページにリダイレクトさせます。

ログアウト用のviewを作ります。logout()を使うことによってログアウトさせます(☆1)。

blogapp/blog/views.py
from django.shortcuts import render, redirect
from django.views.generic import TemplateView
from django.contrib.auth.models import User
from django.db import IntegrityError
from django.contrib.auth import authenticate, login, logout # ☆1

class BlogTop(TemplateView):...

def signupview(request):...

def loginview(request):...

def logoutview(request): # ☆1
    logout(request)
    return redirect('blog:login')

続いて、urls.pyファイルにコードを書きます(☆2)。

blogapp/blog/urls.py
from django.urls import path
from .views import BlogTop, signupview, loginview, logoutview # ☆2

app_name = 'blog'

urlpatterns = [
    path('', BlogTop.as_view(), name='top'),
    path('signup/', signupview, name='signup'),
    path('login/', loginview, name='login'),
    path('logout/', logoutview, name='logout'), # ☆2

]

これでログアウト機能は作成完了です!