Django user authenticate 登录验证

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

 

 

posted @ 2017-05-08 21:05  摆渡人1993  阅读(1968)  评论(0编辑  收藏  举报