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>

猜你喜欢

转载自blog.csdn.net/qq_42469759/article/details/81334655