1.顯示登錄頁面
a.設(shè)計url,通過瀏覽器訪問http://127.0.0.1:8000//login的時候現(xiàn)實(shí)登錄頁面
b.設(shè)計url對應(yīng)的視圖函數(shù)
c.編寫模板文件login.html
2.登錄校驗(yàn)功能
校驗(yàn)數(shù)據(jù)庫中有沒有這個用戶,這里用模擬的偽校驗(yàn)
新建login.html
在templates文件夾下的booktest文件夾下新建
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
POST:提交的參數(shù)在請求頭里,數(shù)據(jù)比較重要用post
GET:提交的參數(shù)在url中
用post方法提交到login_check頁面中
<form method="post" action="/login_check">
用戶名:<input type="text" name="username">
密碼:<input type="password" name="password">
<input type="submit" value="登錄">
</form>
</body>
</html>
注意這里表單的提交方法選擇post方法,action配置如上
配置urls.py
url(r'^login$',views.login),
url(r'^login_check$',views.login_check),
views.py寫視圖函數(shù)login()和login_check()
login函數(shù)直接現(xiàn)實(shí)登錄頁面,login_check函數(shù)用request.POST.get()函數(shù)接受瀏覽器傳遞過來的參數(shù)
def login(request):
'''顯示登錄頁面'''
return render(request, 'booktest/login.html')
def login_check(request):
'''登錄校驗(yàn)視圖'''
# 瀏覽器提交的信息就保存在request里面
# request.POST保存的是POST提交的參數(shù)
# request.GET保存的是GET提交的參數(shù)
# 1.獲取提交的用戶名和密碼
username = request.POST.get('username')
passwoed = request.POST.get('password')
# 2.進(jìn)行登錄校驗(yàn)
# 實(shí)際開發(fā)的時候,用戶名和密碼保存在數(shù)據(jù)庫中
# 模擬
if username == 'zhangyue' and passwoed == '123456':
# 正確,跳轉(zhuǎn)到首頁index
return redirect('/index')
else:
# 錯誤
return redirect('/login')
# 3.返回應(yīng)答
發(fā)生Forbidden (403)錯誤
去項目的setting.py里注釋掉
'django.middleware.csrf.CsrfViewMiddleware',
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個個人學(xué)習(xí)交流的平臺,網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對作者和來源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請及時聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對此聲明的最終解釋權(quán)。