需求: 只有在用户登录之后才可以进行修改密码操作
1)登录/login.html 模板文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
POST:提交的参数请求头。数据安全性要求比较高的时候使用post.
GET:提交的参数在url中。
<form method="post" action="/login_check">
用户名:<input type="text" name="username" value="{{ username }}"><br/>
密码:<input type="password" name="password"><br/>
<input type="checkbox" name="remember">记住用户名<br/>
<input type="submit" value="登录">
</form>
</body>
</html>
</body>
</html>
2)登录成功之后修改密码的模板文件 /change_pwd.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>修改密码</title>
</head>
<body>
<form method="post" action="/change_pwd_action">
新密码:<input type="password" name="pwd">
<input type="submit" value="确认修改">
</form>
</body>
</html>
3)对应视图
def login_required(func):
'''登录判断装饰器'''
def wrapper(request,*args,**kwargs):
#判断用户是否登录
if not request.session.has_key('islogin'):
return redirect('/login')
return wrapper
def login(request):
#判断用户是否登录
if request.session.has_key('islogin'):
#用户已登录, 跳转到首页
return redirect('/index')
else:
#用户未登录
#获取cookie username
if 'username' in request.COOKIES:
#后去记住的用户名
username = request.COOKIES['username']
else:
username = ''
return render(request,'booktest/login.html',{'username':username})
def login_check(request):
'''登录校验'''
#获取用户名和密码
username = request.POST.get('username')
password = request.POST.get('password')
remember = request.POST.get('remember')
if username == '123' and password == "123":
response = redirect('/change_pwd')
if remember == "on":
response.set_cookie('username',username)
request.session['islogin'] = True
return response
else:
return redirect('/login')
@login_required
def change_pwd(request):
'''显示修改密码页面'''
# if not request.session.has_key('islogin'):
# return redirect('/login')
return render(request,'booktest/change_pwd.html')
@login_required
def change_pwd_action(request):
'''模拟修改密码处理'''
# if not request.session.has_key('islogin'):
# return redirect('/login')
password = request.POST.get('pwd')
return HttpResponse('你修改的密码为:%s' %(password))