session的使用总结

一、
session是在服务器上开辟一段空间用于保留浏览器和服务器交互时的重要数据
每个客户端都可以在服务器端有一个独立的Session
http协议是无状态的:每次请求都是一次新的请求,不会记得之前通信的状态
客户端与服务器端的一次通信,就是一次会话
实现状态保持的方式:在客户端或服务器端存储与会话有关的数据
存储方式包括cookie、session,会话一般指session对象
使用cookie,所有数据存储在客户端,注意不要存储敏感信息
推荐使用sesison方式,所有数据存储在服务器端,在客户端cookie中存储session
_id
状态保持的目的是在一段时间内跟踪请求者的状态,可以实现跨页面访问当前请求者的数据
注意:不同的请求者之间不会共享这个数据,与请求者一一对应
什么是session
session - 会话
在服务器上开辟一段空间用于保留浏览器和服务器交互时的重要数据

二、
Django启用Session
settings.py 文件中
项INSTALLED
_APPS列表中添加:
‘django.contrib.sessions’,
项MIDDLEWARE
_CLASSES列表中添加:
‘django.contrib.sessions.middleware.SessionMiddleware’,
session的基本操作:
Session对于象是一个 QueryDict 字典, 可以用类拟于字典的方式进行操作
保存 session 的值到服务器
request.session[键] = 值
如: request.session[‘KEY’] = VALUE
获取session的值
VALUE = request.session[‘KEY’]

VALUE = request.session.get(‘KEY’, 缺省值)
删除session的值
del request.session[‘KEY’]

三、
settings.py 中有关 session 的设置

  1. SESSION_COOKIE_AGE 作用:指定sessionid在cookies中的保存时长 SESSION_COOKIE_AGE =
    60*30
  2. SESSION_EXPIRE_AT_BROWSER_CLOSE = True 设置只要浏览器关闭时,session就失效
    注: 当使用session时需要迁移数据库,否则会出现错误
    $ python3 manage.py makemigrations
    $ python3 manage.py migrate
    session 示例

file : <项目名>/urls.py

from . import views
urlpatterns = [
url(r’^admin/’, admin.site.urls), # 增删改session url(r’^add_session’, views.add_session), url(r’^mod_session/(\d+)’, views.mod_session), url(r’^del_session’, views.del_session), url(r’^show_session’, views.show_session),
]

file : <项目名>/views.py

from . import views
from django.http import HttpResponse
def add
_session(request):
request.session[‘mysession_var’] = 100 responds = HttpResponse(“添加session”) return responds
def mod
_session(request, new_value):
request.session[‘mysession_var’] = new_value responds = HttpResponse(“修改session成功”) return responds
def del
_session(request):
try: del request.session[‘mysession_var’] responds = HttpResponse(“删除session成功”) except: responds = HttpResponse(“删除session失败”) return responds
def show
_session(request):
mysession_var = request.session.get(‘mysession_var’, ‘没有值!’) print("mysession_var = ", mysession_var) return HttpResponse("mysession_var = " + str(mysession_var))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值