view视图代码:
from django.shortcuts import render,redirect from django.http import HttpResponse # Create your views here. def login_required(view_func): def wrapper(request,*view_args,**view_kwargs): if request.session.has_key('islogin'): return view_func() else: return redirect('/login') return wrapper def child(request): return render(request,'booktest/child.html') def html_escape(requet): return render(requet,'booktest/html_escape.html',{ 'content':'<h1>h1标签<h1>' }) def login(request): '''显示登录页面''' # 判断用户是否登录 if request.session.has_key('islogin'): # 用户已登录, 跳转到首页 return redirect('/change_pwd') 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): '''登录校验视图''' # request.POST 保存的是post方式提交的参数 QueryDict # request.GET 保存是get方式提交的参数 print(request.method) # 1.获取提交的用户名和密码 username = request.POST.get('username') password = request.POST.get('password') remember = request.POST.get('remember') # 2.进行登录的校验 # 实际开发:根据用户名和密码查找数据库 # 模拟: smart 123 if username == 'smart' and password == '123': # 用户名密码正确,跳转到首页 response = redirect('/change_pwd') # 判断是否需要记住用户名 if remember == 'on': # 设置cookie username,过期时间1周 response.set_cookie('username', username, max_age=7*24*3600) # 记住用户登录状态 # 只有session中有islogin,就认为用户已登录 request.session['islogin'] = True request.session['username'] = username # 返回应答 return response else: # 用户名或密码错误,跳转到登录页面 return redirect('/login') @login_required def change_pwd(request): return render(request,'booktest/change_pwd.html') @login_required def change_pwd_action(request): password = request.POST.get('password') username = request.session.get('username') return HttpResponse('你的用户名为:%s密码为%s'%(username,password))