1. 程式人生 > >DJANGO專案使用者登陸訪問的實現

DJANGO專案使用者登陸訪問的實現

環境:PYTHON2.7,DJANGO1.9

1、帳號密碼的建立,只處建立的為超級使用者,預設可以登陸django的管理介面

 

 

2、配置DJANGO的專案檔案

配置settings.py,增加

# LOGIN_URL = 'accounts/login/'  django專案頁面預設的LOGIN_URL,因為是預設的,如果不改,可以不用新增
LOGIN_REDIRECT_URL = '/django'   #登陸以後跳轉的URL

 

配置urls.py,增加

url(r'^accounts/login/$', 'django.contrib.auth.views.login'),

用DJANGO內建的方法處理這個登陸的請求

 

增加templates\registration\login.html

由於該方法django.contrib.auth.views.login預設會呼叫專案的templates\registration\login.html,需要建立這個頁面的表單

如果不用這個路徑的HTML需要在上面的方法指定HTML檔案

(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'tests/login.html'}),

實驗中採用了預設的路徑,專案的templates\registration\login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

<div class="container">
  <form class="form-signin" action="/accounts/login/" method="post">{% csrf_token %} <!--csrf_token:生成令牌-->
    <h2 class="form-signin-heading" align="center">登入系統</h2>
    <label for="inputUsername" class="sr-only">username</label>
    <input type="text" name="username" id="inputUsername" class="form-control" placeholder="username" required autofocus>
    <label for="inputPassword" class="sr-only">Password</label>
    <input type="password" name="password" id="inputPassword" class="form-control" placeholder="Password" required>
    <div class="checkbox">
      <label>
        <input type="checkbox" value="remember-me"> 記住密碼
      </label>
    </div>
    <br />
    <button class="btn btn-lg btn-primary btn-block" type="submit">登入</button>
    <br />
    <span style="color: red;">{{ login_err }}</span>
  </form>
</div> <!-- /container -->

 

 

配置views.py,增加

from django.contrib.auth.decorators import login_required      #為了能夠使用django自帶的裝飾器 @login_required

然後到新增到方法前面,這樣的目的是讓使用者訪問帶有這個方法的URL的時候需要登陸

 

 

 

3、登陸測試

輸入原來不需要登陸就能訪問的DJANGO專案URL回車,此時跳轉到登陸介面

 

輸入建立的使用者名稱和密碼,登陸成功,實現了登陸訪問,並且跳轉到了settings指定的URL,LOGIN_REDIRECT_URL = '/django'