【无标题】

本文介绍了HTTP中状态保持的两种主要方式——Cookie和Session。Cookie用于在客户端保存信息,通过`set_cookie`设置,`delete_cookie`删除,而Session依赖于服务器端,需在设置中启用SessionMiddleware,并通过`request.session`进行操作,设置有效期、删除Session等。文中还详细讲解了如何防止Cookie篡改并管理Session的生命周期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

状态的保持

#####对本单元的简单理解
长/短连接
短:就比如通话 只能说一次 需要在进行连接 才能继续通话
长:不会断开 可以长时间的连接

##Cookie
实现cookie设置

from django.shortcuts import render,HttpResponse
# 设置cookie
resp.set_cookie("name","hahahhah")

获取cookie

# 获取cookie,cookie是保存在客户端的,获取要是有request请求
print(request.COOKIES.get("name"))
删除cookie
# 删除cookie
resp.delete_cookie('name')
防止篡改cookie

避免不要在客户端进行修改

HttpResonse.set_signed_cookie(key, value, salt='', max_age=None,
expires=None, path='/', domain=None, secure=None, httponly=True)
# 为cookie值添加签名,其余参数与set_cookie相同
框架是如何管理Session

Session的使用必须在Settings配置下

INSTALLED_APPS = (
    ...
    'django.contrib.sessions',
    ...
)
MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    ...
)

获取Session

session_data = request.session.get(Key)
session_data = request.session[Key]
删除Session
del request.seesion[Key]
# 删除对应session,Key值不存在时,引发KeyError

设置有效期

request.session.set_expiry(value)
# 设置Session的有效时间
'''
value: 有效时间。
    - 为整数时: 将在value为秒单位之后过期
    - 为0时: 将在用户关闭浏览器之后过期。
  - 为None时: 使用全局过期的设置,默认为两个星期,14天。
  - 为datetime时: 在这个指定时间后过期
'''
request.session.get_expiry_age()
# 返回距离过期还剩下的秒数

request.session.clear_expired()
# 清除过期的Session会话
  • session示例
class SessionOper(View):
    def get(self,request):
        # 设置session  使用request请求来设置session  会自动生成sessionid===
        request.session["name"] = "hahaha"
        # 获取session
        print(request.session.get("name"))
        # 删除session
        request.session.clear()
        # 获取session
        print(request.session.get("name"))
        return HttpResponse("OK")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值