Django 內置的authenticate 處login,logou實現用戶登錄、注消

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章