咸鱼笔记—登录装饰器函数
新手刚接触python,跟着教程学的,笔记是为了把我学到的知识梳理一遍,仅供参考。欢迎各路大神指点。
学习版本: Django 1.8. Python 3.5
登录装饰器函数
做一个登录页,让用户输入用户名和密码进行登录,登录成功之后跳转的修改密码页面。在修改密码页面输入新密码,点击确认按钮完成密码修改。
登录页login.html.
<form action="/login_check" method="post">
用户名 <input type="text" name="username" value="{{username}}">
密码 <input type="password" name="password"><br/>
<input type="checkbox" name="remember">记住用户名
<input type="submit" value="登录">
</form>
修改密码页面change_pwd.html.
<form action="/changepwd_action" method="post">
密码 <input type="password" name="pwd"><br/>
<input type="submit" value="确认修改">
</form>
显示登录页的视图login,验证登录的视图login_check,显示发帖页的视图changepwd,处理修改密码的视图changepwd_action.
def changepwd(request):
if not request.session.has_key('islogin'):
return redirect('/login')
return render(request,'booktest/changepwd.html')
def changepwd_action(request): #密码修改处理(模拟)
#获取新密码
pwd = request.POST.get('pwd')
#获取session用户名
username = request.session.get('username')
# 返回数据
return HttpResponse('%s新密码为%s'%(username,pwd))
加功能:
只有用户登录之后才可以进行修改密码操作。
登录装饰器函数。
def login_required(view_func):
#装饰器
def wrapper(request,*view_args,**view_kwargs):
#判断是否登录
if request.session.has_key('islogin'):
# 用户已经登录,调用对应视图
return view_func(request,*view_args,**view_kwargs)
else:
return redirect('/login')
return wrapper
效果: 在没有输入账号密码的情况下,直接输入修改密码的地址
跳转到登录页