URL設定の構成
プロジェクトのメインURL設定ファイルで、ログイン関連のパスを定義します。
from django.contrib import admin
from django.urls import path
from auth_module import views
urlpatterns = [
path('admin/', admin.site.urls),
path('welcome/', views.welcome),
path('login/', views.login_view),
path('login_handler/', views.login_handler),
]
ビュー関数の作成
認証モジュールのビューファイルにログイン処理用の関数を実装します。
from django.shortcuts import render
def login_view(request):
return render(request, 'login_form.html')
テンプレートディレクトリの構成
アプリケーション配下にtemplatesディレクトリを作成し、ログインフォーム用のHTMLファイルを配置します。
ログインフォームの実装
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ログインフォーム</title>
</head>
<body>
<h2>システムログイン</h2>
<h3>認証システム</h3>
<form action="/login_handler/" method="post">
<label for="user_id">ユーザーID: </label>
<input type="text" id="user_id" name="user_id"><br><br>
<label for="pass_key">パスワード: </label>
<input type="password" id="pass_key" name="pass_key"><br><br>
<button type="submit">ログイン</button>
{% csrf_token %}
<p style="color:red">{{error_message}}</p>
</form>
</body>
</html>
ログイン処理ロジック
フォーム送信を受け付ける処理関数を実装します。
from django.http import HttpResponse
from django.shortcuts import render, redirect
def login_handler(request):
if request.method == 'POST':
user_id = request.POST.get('user_id')
pass_key = request.POST.get('pass_key')
if user_id and pass_key:
if user_id == 'administrator' and pass_key == 'securepass':
return redirect('/dashboard/')
else:
return render(request, 'login_form.html',
{'error_message': '認証情報が正しくありません'})
else:
return render(request, 'login_form.html',
{'error_message': '必須項目が入力されていません'})
else:
return render(request, 'login_form.html')
ダッシュボードページへの遷移
認証成功後に表示するダッシュボード用のテンプレートを作成し、リダイレクト処理を実装します。