DJANGO專案使用者登陸訪問的實現
阿新 • • 發佈:2018-11-11
環境: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'