django實現用戶登錄
1、注意前后端name值保持一致。
2、遺留問題,
登錄才會跳轉,不登錄也可以訪問跳轉頁面啊?
有的頁面不需要登錄的怎么處理?
怎樣從數據庫獲取密碼匹配,而不是從views固定寫死?
怎樣將獲取的用戶傳到index?
3、基礎代碼。
[root@backup templates]# cat login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<form action="/login/" method="post">
{% csrf_token %}
<p>
<label>用戶名</label>
<input name="user" type="text">
</p>
<p>
<label>密碼</label>
<input name="pwd" type="pwd">
<input type="submit" value="提交" >
<span style="color: red;">{{error_msg }}</span>
</p>
</form>
</body>
[root@backup logintest]# cat urls.py
from loginb import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/', views.login),
url(r'^index/', views.index),
]
[root@backup loginb]# cat views.py
#coding:utf-8
from django.shortcuts import render, HttpResponse, redirect
def login(request):
error_msg = ''
if request.method == "POST":
user = request.POST.get('user', None) #避免提交空,時異常
user = user.strip() #用戶輸入末尾有空格是去空格
pwd = request.POST.get('pwd', None)
if user == "root" and pwd == "123":
print('user=' + user, 'pwd=' + pwd)
return redirect("/index")
else:
error_msg = "賬號或者密碼不對"
print('user='+user, 'pwd='+pwd)
return render(request, 'login.html',{'error_msg': error_msg})
def index(request):
print (request.GET.items)
return HttpResponse("welcome ..")
[root@backup loginb]#