Django框架(22.Django中设置session以及session对象及方法)

Session

对于敏感、重要的信息,建议要储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息。

在服务器端进行状态保持的方案就是Session。

数据迁移后会在数据库中创建出存储Session的表。

    输入命令    生成数据库表

python manage.py migrate

数据库就默认就有一个名字为 django_session 来保存session

 

表结构如图:

由表结构可知,操作Session包括三个数据:键,值,过期时间。

 

 对象及方法

通过HttpRequest对象的session属性进行会话的读写操作。

1) 以键值对的格式写session。

request.session['键']=值

2)根据键读取值。

request.session.get('键',默认值)

3)清除所有session,在存储中删除值部分。

request.session.clear()

4)清除session数据,在存储中删除session的整条数据。

request.session.flush()

5)删除session中的指定键及值,在存储中只删除某个键及对应的值。

del request.session['键']

6)设置会话的超时时间,如果没有指定过期时间则两个星期后过期。

request.session.set_expiry(value)

7) 判断sessionz中有没有包含某个设置的session的键值

  • 如果value是一个整数,会话将在value秒没有活动后过期。
  • 如果value为0,那么用户会话的Cookie将在用户的浏览器关闭时过期。
  • 如果value为None,那么会话永不过期。
request.session.has_key('键名')

在视图函数中的用法

def set_session(request):
    """设置session"""
    request.session['username'] = 'tong'
    request.session['age'] = 18
    return HttpResponse('设置session')


def get_session(request):
    """获取session"""
    username = request.session['username']
    age = request.session['age']

    return HttpResponse(username + ":" + str(age))


def clear_session(request):
    """清除所有session信息"""
    request.session.clear()
    return HttpResponse('使用clear()清除成功')


def flush_session(request):
    """清除session数据"""
    request.session.flush()
    return HttpResponse('使用flush()清除成功')

 访问set_session视图函数,进行设置,然后访问get_session视图函数进行获取值

 当访问过clear_session和flush_session任何一个视图函数时,再访问get_session就会报错,因为已经清除了session,需要再次访问set_session后进行设置,才可以获取到session 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是那个同伟伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值