實現乙個具體的功能demo——登入、退出。當然,其實除了登入還有很多東西。這裡只是把系統登入退出部分功能拆解下來。
在login的templates目錄下建立兩個模板,分別是login.html和index.html,當使用者未登入時,跳轉到login.html頁面,登陸成功或者登入狀態,跳轉到index.html。
url的配置內容如下:
from django.conf.urls import url, include
from users.views import loginview,logoutview
urlpatterns = [
url(r'^login/$', loginview.as_view(), name='login'),
# 退出登入
url(r'^logout/$', logoutview.as_view(), name='logout'),
]
兩份配置共同定義了兩個可訪問的url:
看一下兩個頁面,做的很簡單也不美觀,主要為了說明功能。login.html如下:
其中用到了django的模板,用來通過url配置中的name引數反向求解,對於本例,就是http://ip:port/login/。}用來對映render給模板的引數,接下來的views.py會看到對應的**。然後是home.html
主頁歡迎,}
forms 模板如下:from django import forms
class loginform(forms.form):
username = forms.charfield(required=true)
password = forms.charfield(required=true, min_length=5)
login/views.py中的import如下
from django.contrib.auth import authenticate, login, logout
from .forms import loginform,
# 使用者登入
class loginview(view):
def get(self, request):
return render(request, 'login.html')
def post(self, request):
login_form = loginform(request.post)
if login_form.is_valid():
user_name = request.post.get('username', '')
password = request.post.get('password', '')
# 上面的 authenticate 方法 return user
user = authenticate(username=user_name, password=password)
if user is not none:
if user.is_active: # 使用者是否被啟用(is_active可以刪除多餘)
login(request, user)
return httpresponsepermanentredirect(reverse('index')) #跳轉
return render(request, 'login.html', )
return render(request, 'login.html', )
return render(request, 'login.html', )
# 使用者登出
class logoutview(view):
def get(self, request):
logout(request)
return httpresponsepermanentredirect(reverse('login'))
loginview的**實際上可以作為標準的login流程,首先獲取使用者名稱和密碼,然後通過authenticate方法進行校驗,如果該使用者存在,會返回使用者物件,通過login函式執行登入,如果使用者不存在,返回到login.html頁面。 詳解Django框架中使用者的登入和退出的實現
django 提供內建的檢視 view 函式用於處理登入和退出 以及其他奇技淫巧 但在開始前,我們來看看如何手工登入和退出。django提供兩個函式來執行django.contrib.auth 中的動作 authenticate 和login 認證給出的使用者名稱和密碼,使用 authenticat...
python使用者名稱密碼登入退出 使用者登入登出
一 功能需求分析 1.登入功能分析 1.1登入流程 1.2功能 乙個請求為乙個功能 登入頁面 登入功能 登出功能 二 登入頁面 1.介面設計 1.1.介面說明 類目 說明 請求方式 get url定義 usel login 引數格式 無引數 1.2返回結果 登入頁面 1.3 實現 三 登入功能 1....
html退出登入 退出登入 0152
使用者只需要向 spring security 專案中傳送 logout 退出請求即可。1 退出實現 實現退出非常簡單,只要在頁面中新增 log 退出登入為了實現更好的效果,通常新增退出的配置。預設的退出 url 為 logout,退出成功後跳轉到 login?logout 如果不希望使用預設值,可...