📅  最后修改于: 2023-12-03 14:40:46.733000             🧑  作者: Mango
在 Web 开发中,Cookie 是一种在用户计算机中存储信息的机制,它可以使服务器在浏览器中存储和检索用户的数据。在 Django 中使用 Cookie 并不难,在视图函数中直接使用 request.COOKIES 字典就可以获取 Cookie 内容;如果需要设置 Cookie,则可以使用 HttpResponseRedirect 对象及 set_cookie 函数。
可以使用 django.http.HttpResponseRedirect 对象来设置 Cookie。HttpResponseRedirect 对象继承自 HttpResponse 对象,所以可以调用 set_cookie 函数。
from django.http import HttpResponseRedirect
def my_view(request):
response = HttpResponseRedirect('/redirected/')
response.set_cookie('cookie_name', 'cookie_value')
return response
要获取 Cookie 值,可以使用 request.COOKIES 字典。以前面的例子为例,可以在重定向后的方法中如下获取 Cookie 值。
def redirected(request):
cookie_value = request.COOKIES.get('cookie_name')
# ... do something with the value
需要注意的是,COOKIES 字典中可以包含来自浏览器的所有 Cookie,不仅仅是自己在代码中设置的 Cookie。
可以使用 set_cookie 方法的 expires 参数设置 Cookie 的过期时间。expires 可以是 datetime.datetime 类型或字符串类型。
from datetime import datetime, timedelta
expires = datetime.now() + timedelta(days=2)
response.set_cookie('cookie_name', 'cookie_value', expires=expires)
可以通过设置 Cookie 的 max_age 参数为 0 来删除 Cookie,也可以使用 del 操作符来删除 COOKIE 字典中的某个键值对。
response.set_cookie('cookie_name', 'cookie_value', max_age=0)
del request.COOKIES['cookie_name']