cookie 与 session
2023-12-14 23:40:26
1、cookie
1.1、从视图函数设置cookie
??login_action视图函数中,添加浏览器cookie;event_manage视图中,从浏览器获取cookie。如下:
# jk_app/views.py 文件
from django.shortcuts import render
from django.http import HttpResponse,HttpResponseRedirect
def index(request):
return render(request,"index.html")
def login_action(request):
if request.method == 'POST':
username = request.POST.get('username','')
password = request.POST.get('password','')
if username == "admin" and password == "admin123":
response = HttpResponseRedirect('/jk_app/event_manage/')
response.set_cookie('user',username,3600) # 向浏览器添加cookie,保存时效3600秒
return response
else:
return render(request,'index.html',{'error':'username or password error !'})
def event_manage(request):
username = request.COOKIES.get('user','') # 读取浏览器的cookie
return render(request,'event_manage.html',{"user":username}) # 将user的值 和 html页面一起返回
set_cookie()参数说明:
-
第一个参数:“user”表示写入浏览器的cookie名;
-
第二个参数:cookie的值;
-
第三个参数:设置cookie在浏览器中保存的时间,单位为s。
1.2、返回值显示到HTML上
??event_manage.html文件内添加返回参数,如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Event Manage Page</title>
</head>
<body>
<h1> Login Success ! </h1>
<div >
<a>嘿! {{user}},欢迎登录 </a>
</div>
</body>
</html>
接口中cookie为:csrftoken=n8CuLrJnvBxXYwfbCTve5lOILhwgKn5r; user=admin
2、session
2.1、从视图函数设置session
# jk_app/views.py 文件
from django.shortcuts import render
from django.http import HttpResponse,HttpResponseRedirect
def index(request):
return render(request,"index.html")
def login_action(request):
if request.method == 'POST':
username = request.POST.get('username','')
password = request.POST.get('password','')
if username == "admin" and password == "admin123":
response = HttpResponseRedirect('/jk_app/event_manage/')
request.session['user'] = username # 将session信息记录到浏览器
return response
else:
return render(request,'index.html',{'error':'username or password error !'})
def event_manage(request):
username = request.session.get('user','') # 读取浏览器的session
return render(request,'event_manage.html',{"user":username}) # 将user的值 和 html页面一起返回
2.2、生成常用数据表
需要用数据表,来保存sessionID与session的映射关系,Django默认设置了SQLite3数据库,所以暂时不需要配置其它数据库。
??创建django_session表,通过migrate进行数据迁移:python manage.py migrate
(同时会生成auth_user表,存放着登录Django管理后台的用户信息。)
2.3、运行项目
??登录成功后,请求头的cookie带上了sessionID,如下图:
文章来源:https://blog.csdn.net/qq_40384309/article/details/134842577
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!