Django-Cookie & Session

步兴德
2023-12-01

Cookie

Cookie名称和值可以由服务器端开发自己定义,这样服务器可以知道该用户是否是合法用户以及是否需要重新登录等。服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型记住用户名。
cookie数据存放在客户的浏览器(客户端)上

1、设置Cookie

常用参数:

key: 这个cookie的key。
value: 这个cookie的value。
max_age: 最长的生命周期。单位是秒。
expires: 过期时间。跟max_age是类似的,只不过这个参数需要传递一个具体的日期,比如datetime或者是符合日期格式的字符串。如果同时设置了expires和max_age,那么将会使用expires的值作为过期时间。
path: 对域名下哪个路径有效。默认是对域名下所有路径都有效。
domain: 针对哪个域名有效。默认是针对主域名下都有效,如果只要针对某个子域名才有效,那么可以设置这个属性.
secure: 是否是安全的,如果设置为True,那么只能在https协议下才可用。
httponly: 默认是False。如果为True,那么在客户端不能通过JavaScript进行操作。

def set_cookie(request):
    reponse = HttpResponse()
    reponse.set_cookie('name',value='test',max_age=3600)
    return reponse

2、获取Cookie

def get_cookie(request):
    name = request.COOKIES.get('name')
    return HttpResponse(name)

3、删除Cookie

def del_cookie(request):
    name = HttpResponse('ok')
    name.delete_cookie('name')
    return name

Session

session数据放在服务器上,但是服务端的session的实现对客户端的cookie有依赖关系的。session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。

1、设置session

request.session["key"] = value

2、获取Session

request.session.get("key")

3、删除Session

删除整条session
request.session.flush()
删除session中的某个具体键值对
del request.session["key"]
 类似资料: