标题
Session
对于敏感、重要的信息,建议要储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息。
在服务器端进行状态保持的方案就是Session。
区别于cookie,ssession是储存在服务器端。
储存在django_session数据库中
def login(request):
'''显示登录页面'''
if request.session.has_key('islogin'):
# 用户已登录,跳转到首页
return redirect('/index')
else:
# 用户未登录
# 获取登录状态
if 'username' in request.COOKIES:
username = request.COOKIES['username']
else:
username = ''
return render(request,'booktest/login.html' ,{
'username':username
})
这是利用session登录的两个函数
def login_check(request):
'''登录校验'''
# request.post 保存post方式提交的参数
# request.get 保存get方式提交的参数
# 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':
# 用户名正确,跳转到首页
resource = redirect('/index')
# 判断是否需要记住用户名
if remember == 'on':
resource.set_cookie('username',username,
max_age=7*24*3600)# 过期时间为一周
# 记住用户登录状态
# 只有session中有islogin,就认为用户已登录
request.session['islogin'] = True
return resource
else:
# 用户名错误,跳转到登录页面
return redirect('/login')
如果该用户已经登录过一次再次登录就之间跳转到index页面