這部分主要是需要保證**的一些敏感頁面不被普通遊客訪問到,需要一整套使用者系統
建立登陸頁面,與普通html頁面建立方法相同,比如下面這個最基本的登陸頁面
lang="en">
charset="utf-8">
登陸title>
head>
action="
"method="post">
type="text"
name="username">
label>
type="password"
name="password">
label>
type="submit"
value="登陸">
form>
}p>
body>
html>
login_check和這兩部分後面會介紹
寫登入頁函式,以便於在其他頁面使用跳轉到登入頁。在views.py檔案下增加
def
login
(request):
return render(request, "login.html", )
別忘了新增到urls.py檔案
path('login/', views.login, name="login"),
跳轉方法
href="
">
a>
以上部分和建立乙個普通頁面的方法基本相同,接下來重頭戲開始:使用者登陸與驗證。在views.py檔案內建立登陸驗證函式。若賬號密碼通過,則登陸並返回;否則留在登入頁並顯示 「登入名或密碼錯誤!」字樣
from django.contrib import auth
from django.shortcuts import render, redirect
deflogin_check
(request):
username = request.post.get("username", "")
password = request.post.get("password", "")
user = auth.authenticate(request, username=username, password=password)
if user is
notnone:
auth.login(request, user)
return redirect("/dashboard/")
else:
return render(request, "login.html", )
同樣不要忘記將函式寫入urls.py檔案
path('login_check', views.login_check, name="login_check"),
未登入使用者強制跳轉,防止未登入使用者看到資料,在需要設定訪問限制的網頁加入以下函式,比如table,判斷使用者登陸狀況,若使用者已登入,則允許跳轉到table頁面,否則強制跳轉到登入頁面
def
table
(request):
# 判斷登入情況,未登入強制跳轉
if request.user.is_authenticated:
return render(request, "table.html")
else:
return render(request, "login.html", )
django 使用者登入及驗證
1 登入頁面如下 2 登入乙個使用者 從檢視中登入乙個使用者,請使用login 它接受乙個httprequest物件和乙個user物件。login 使用django的會話框架來將使用者的id儲存在會話中。注意任何在匿名會話中設定的資料都會在使用者登入後的會話中都會記住。先呼叫authenticate...
django 驗證使用者是否登陸
第一步 指定一下登陸url。url r accounts login include xadmin.site.urls 由於我用的xadmin故而指向了xadmin,如果使用預設的adminsite,可做如下配置 url r accounts login django.contrib.auth.vi...
Django自帶的使用者驗證系統
第一步 系統配置使用者表 第二步 使用者註冊和登陸驗證功能 首先,在models中建立使用者表,導包 from django.contrib.auth.models import abstractuser 建立使用者表 class user abstractuser username models....