views.py
1. 寫二個函數 userlogon 實現用戶登錄驗證,userlogou實現注消
from django.shortcuts import render, HttpResponse from django.contrib.auth import authenticate, login, logout from account.form import LoginForm from django.views.decorators.csrf import csrf_exempt # Create your views here. from account.form import LoginForm from django.shortcuts import redirect @csrf_exempt def userlogin(request): if request.method == "POST": login_form=LoginForm(request.POST) if login_form.is_valid(): cd=login_form.cleaned_data user = authenticate(username=cd['username'],password=cd['password']) if user: login(request,user) #return HttpResponse('WELCOME') return redirect('/deviceman/index') else: return HttpResponse('Failed') else: return HttpResponse('invalid login') if request.method == "GET": login_form= LoginForm() return render(request,"login.html",{"form": login_form}) def userlogout(request): logout(request) context = {} return render(request, 'logout.html', context,)
2. 寫一個登錄表單類 form.py
from django import forms # Create your views here. class LoginForm(forms.Form): username = forms.CharField() password = forms.CharField(widget=forms.PasswordInput)
3. 寫二個模板login.html,
<!DOCTYPE html> <html lang="en"> <head> <title>AECOM IT Device Manager Tools</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="/static/jquery-3.3.1.js"></script> <script type="text/javascript"></script> </head> <body> {% include 'headbase.html' %} <div align="center" > <br> <br> <br> <h4> 請登錄系統</h4> <form action="" method="post" > {% csrf_token %} {{ form.as_p }} <input type="submit" value="Login"> <input type="reset" value="Reset"> </form> </div> </body>
logout.html
<!DOCTYPE html> <html lang="en"> <head> <title>AECOM IT Device Manager Tools</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="/static/jquery-3.3.1.js"></script> <script type="text/javascript"></script> </head> {% include 'headbase.html' %} <body> <br> <br> <br> <div align="center"> <h3> 你已經成功注消!</h3> 重新<a href="/account/login">登錄</a> 或者<a href="/deviceman/index">返回主頁</a> </div> </body>