java中的接口是类吗
258
2022-08-31
Django(part37)--session(Django MVT)
学习笔记,仅供参考,有错必究
文章目录
cookies和session
session
Django启用Sessionsession的基本操作session 示例
cookies和session
session
session的意思就是会话,session可以在服务器上开辟一段空间,保留浏览器和服务器交互时的重要数据(重要数据一定是存储在服务器上),每个客户端都可以在服务器端有一个独立的session;
= [ # 启用 sessions 应用 'django.contrib.sessions',]
在MIDDLEWARE_CLASSES列表中添加(如果已经存在就不再添加):
MIDDLEWARE = [ # 启用 Session 中间层 'django.contrib.sessions.middleware.SessionMiddleware',]
session的基本操作
session对象是一个类似于字典的SessionStore对象, 可以用类似于字典的方式进行操作,session只可以存储能够序列化的数据,如字典,列表等。
保存 session 的值到服务器
request.session['KEY'] = VALUE#VALUE为Python中的基础数据类型
获取session的值
VALUE = request.session['KEY']#或VALUE = request.session.get('KEY', 缺省值)
删除session的值
del request.session['KEY']
在 settings.py中有关 session 的设置
SESSION_COOKIE_AGE#作用:指定session_id在cookies中的保存时长 #例如:SESSION_COOKIE_AGE = 60*30SESSION_EXPIRE_AT_BROWSER_CLOSE = True #若为True, 则只要浏览器关闭时, session就失效
注意事项
当使用session时需要迁移数据库,否则会出现错误,这是因为session看起来是一个字典,但实际上,session需要把它的内容序列化到数据库中。
python manage.py makemigrationspython manage.py migrate
session 示例
我们在主视图模块views.py中加入两个视图函数:
def test_session(request): # 为session 添加mykey 对应的值 request.session['mykey'] = ['山羊', '黑山羊'] return HttpResponse('设置成功')def show_session(request): # 取出sesssion中,mykey对应的数据 value = request.session.get('mykey', 'mykey没有对应的值') s = str(value) return HttpResponse(s)
在主urls.py文件中,加入俩路由:
from django.urls import re_pathfrom django.contrib import adminfrom django.conf.urls import includefrom . import viewsurlpatterns = [ re_path(r'^admin/', admin.site.urls), re_path(r'^show_session/', views.show_session), re_path(r'^test_session/', views.test_session),]
向test_session(request): del request.session['mykey'] return HttpResponse('设置成功')
向http://127.0.0.1:8000/test_session/发起请求,将服务器端的session删除,并查看http://127.0.0.1:8000/show_session/:
嗯,session已经被删除了!
但需要注意的是,虽然我们的session在服务器端被删除了,但是我们的浏览器依然保存着sessionid:
这有点类似于,我们的银行账户被冻结了,但是我们依然保留着该卡号的银行卡。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~