具体来说cookie机制采用在客户端保持状态的方案,而session机制采用的是在服务端保持状态的方案。
cookie :cookie分发通过拓展HTTP协议来实现,是由浏览器按照一定原则在后台自动发送给服务器。
session:当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否包含一个session标识。
1.修改login_success.html 文件
{{user}} 用于传参
<body>
登录成功,欢迎您,{{ user }}
</body>
2.修改views.py文件
①采用cookie方式
# 登录动作
def login_action(request):
if request.method == 'POST':
username = request.POST.get('username','')
password = request.POST.get('password','')
if username == 'admin' and password == 'admin123':
# return HttpResponse('login success!')
response= HttpResponseRedirect("/login_success/")
response.set_cookie('user', username,2600)
return response
else:
return render(request,'index.html',{'error':'username or password error!'})
#登录成功后跳转
def login_success(request):
username = request.COOKIES.get('user','')
return render(request,"login_success.html",{"user":username})
②采用session方式
# 登录动作
def login_action(request):
if request.method == 'POST':
username = request.POST.get('username','')
password = request.POST.get('password','')
if username == 'admin' and password == 'admin123':
# return HttpResponse('login success!')
response= HttpResponseRedirect("/login_success/")
request.session['user'] = username
return response
else:
return render(request,'index.html',{'error':'username or password error!'})
#登录成功后跳转
def login_success(request):
username = request.session.get('user','')
return render(request,"login_success.html",{"user":username})
创建数据库 :python manage.py migrate 。创建成功后,数据库默认配置还有相关的表也自动创建好了。
3.运行项目,打开浏览器,查看user值已经传到新页面了,并检查cookie值和sessionid