django实现用户登录
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]#