Django視圖函數
view視圖函數 from django.shortcuts import render,redirect from django.contrib.auth import authenticate,login,logout def acc_login(request): “登錄驗證”’ error_msg = '' if request.method == "POST": username = request.POST.get('username') password = request.POST.get('password') user = authenticate(username=username,password=password) # 用戶去做驗證 if user: print("passed authencation",user) login(request,user) # 登錄可以顯示用戶 #request.user = user return redirect( request.GET.get('next','/') ) else: error_msg = "Wrong username or password!" return render(request, 'login.html', {'error_msg':error_msg}) def acc_logout(request): #退出 logout(request) return redirect("/login/")
Django 前端
<div class="container"> <form class="form-signin" method="post">{% csrf_token %} <h2 class="form-signin-heading">PerfectCRM</h2> <label for="inputEmail" class="sr-only">Username</label> <input type="text" id="" name="username" class="form-control" placeholder="Username" required autofocus> <label for="inputPassword" class="sr-only">Password</label> <input type="password" name="password" class="form-control" placeholder="Password" required> <span style="color: red">{{ error_msg }}</span> <div class="checkbox"> <label> <input type="checkbox" value="remember-me"> Remember me </label> </div> <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> </form> </div> <!-- /container -->
如果想給每條視圖函數加驗證只需要導入
from django.contrib.auth.decorators import login_required
給每個視圖函數加上@login_required