django 用戶認證模塊

#https://www.cnblogs.com/ccorz/p/6357815.html

urls.py增加

url(r'^login$',appscan_views.login,name="login"),

settings.py增加

INSTALLED_APPS = [
'django.contrib.auth',
MIDDLEWARE = [
'django.contrib.auth.middleware.AuthenticationMiddleware',

增加login.html模版

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="shortcut icon" href="/static/favicon.ico">
    <title>VULSCAN</title>
    <!-- 引入 Bootstrap core CSS -->
    <link href="/static/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>
<div class="container" style="margin-top:150px;">
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4">
<h1 class="text-center"><p>VulScan</p></h1><h2></h2>
<form class="form-horizontal" role="form" action="{% url 'login' %}" method="post">
  {% csrf_token %}
  <div class="form-group">
    <label class="col-sm-4 control-label">username:</label>
    <div class="col-md-8">
      <input type="username" style="width:200px;" name="username" class="form-control"  placeholder="username">
    </div>
  </div>
  <div class="form-group">
    <label  class="col-sm-4 control-label">password:</label>
    <div class="col-md-8">
      <input type="password" style="width:200px;" name="password" class="form-control"  placeholder="Password">
    </div>
  </div>
  <div class="form-group">
    <div class="col-md-12">
    <div class="col-md-4"></div>
      <div class="col-md-4">
      <button type="submit" class="btn btn-primary btn-lg">submit</button>
      </div>
    <div class="col-md-4"></div>
    </div>
  </div>
</form>
</div>
<div class="col-md-4"></div>
</div>
</div>
    <script src="/static/js/jquery.min.js"></script>
    <script src="/static/css/bootstrap.min.css"></script>
  </body>
</html> 

增加認證方法

from django.contrib import auth
def login(request):
    if request.method == 'POST':
        #獲取表單用戶密碼
        username = request.POST.get('username', '')
        password = request.POST.get('password', '')
        #獲取的表單數據與數據庫進行比較
        user = auth.authenticate(username = username,password = password)
        if user:
            #比較成功,跳轉index
            auth.login(request,user)
            request.session['username'] = username
            return HttpResponseRedirect('/')
        else:
            #比較失敗,還在login
            return render(request, 'login.html')
    else:
        return render(request, 'login.html')
{% if user.is_authenticated %}
    <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
    <p>Welcome, new user. Please log in.</p>
{% endif %}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章