Python 在django中更新cookie而不重置过期时间
是否可以在不重置cookie值的情况下更新cookie值,我需要节省过期时间?目前,我尝试这样做:Python 在django中更新cookie而不重置过期时间,python,django,cookies,request,response,Python,Django,Cookies,Request,Response,是否可以在不重置cookie值的情况下更新cookie值,我需要节省过期时间?目前,我尝试这样做: class SetBannerCookie(object): def process_template_response(self, request, response): max_age = 60 banners = Banner.objects.filter(active=True, show_start_date__lte=timezone.now()
class SetBannerCookie(object):
def process_template_response(self, request, response):
max_age = 60
banners = Banner.objects.filter(active=True, show_start_date__lte=timezone.now(), show_end_date__gte=timezone.now())
for banner in banners:
cookie_name = 'banner_'+str(banner.id)
if cookie_name in request.COOKIES:
# update value only here
else:
response.set_cookie(cookie_name, value='yes', max_age=max_age, path='/')
return response
您可以获取cookie的到期时间,然后使用新值更新cookie,同时将剩余到期时间设置为到期时间 例如,我们设置了一个剩余60分钟到期时间的cookie。20分钟后,它还有40分钟。现在我们可以更新coookie并将到期时间设置为40分钟。这样我们就可以保持原来的有效期
request.META['HTTP\u COOKIE']
将包含原始COOKIE字符串。我们可以使用类来解码这些值。现在进行计算并更新它 我找到了这样的答案,但request.META['HTTP_COOKIE']中没有过期数据,我还尝试了SimpleCookie(request.META['HTTP_COOKIE']),它通常解析数据,但也没有过期数据data@meteor当您这样做时,您会得到什么:print SimpleCookie(request.META['HTTP_COOKIE'])['sessionid'].values()
?我得到:设置Cookie:banner\u 2=是设置Cookie:banner\u 2\u状态=显示设置Cookie:banner\u 3=是设置Cookie:banner\u 4=是设置Cookie:banner\u 4\u状态=显示设置Cookie:csrftoken=Upp92BdZqfMMDTTvqga0hLQtnkiFSZa3设置Cookie:sessionid=z99b3s0cx0cxkydy56ul3jxx027oj51xkk实际上我用2解决了这个问题正如您在上面看到的,cookies不是一个,而是一些js工作