我最近参加了会话和cookies。我在理论上很好地理解会话和cookie,但我在理解会话代码时有一个问题。它是关于用户获取last_visit。代码是 来自tangowithdjango.com
def index(request):
context = RequestContext(request)
category_list = Category.objects.all()
context_dict = {'categories': category_list}
for category in category_list:
category.url = encode_url(category.name)
page_list = Page.objects.order_by('-views')[:5]
context_dict['pages'] = page_list
#### NEW CODE ####
if request.session.get('last_visit'):
# The session has a value for the last visit
last_visit_time = request.session.get('last_visit')
visits = request.session.get('visits', 0)
if (datetime.now() - datetime.strptime(last_visit_time[:-7], "%Y-%m-%d %H:%M:%S")).days > 0:
request.session['visits'] = visits + 1
request.session['last_visit'] = str(datetime.now())
else:
# The get returns None, and the session does not have a value for the last visit.
request.session['last_visit'] = str(datetime.now())
request.session['visits'] = 1
#### END NEW CODE ####
# Render and return the rendered response back to the user.
return render_to_response('rango/index.html', context_dict, context)
当我试图理解request.session.get('last_visit')的作用时,我总是得到None。我不明白的是关键'last_visit'。它是会话中的默认对象吗?如果它在会话对象中是默认值,那么为什么每次在我的终端中都显示“无”。
请有人让我理解get()中传递的对象。
答案 0 :(得分:0)
将RequestContext
内容移至底部
def index(request):
#### NEW CODE ####
if request.session.get('last_visit'):
# The session has a value for the last visit
last_visit_time = request.session.get('last_visit')
visits = request.session.get('visits', 0)
if (datetime.now() - datetime.strptime(last_visit_time[:-7], "%Y-%m-%d %H:%M:%S")).days > 0:
request.session['visits'] = visits + 1
request.session['last_visit'] = str(datetime.now())
else:
# The get returns None, and the session does not have a value for the last visit.
request.session['last_visit'] = str(datetime.now())
request.session['visits'] = 1
#### END NEW CODE ####
context = RequestContext(request)
category_list = Category.objects.all()
context_dict = {'categories': category_list}
for category in category_list:
category.url = encode_url(category.name)
page_list = Page.objects.order_by('-views')[:5]
context_dict['pages'] = page_list
# Render and return the rendered response back to the user.
return render_to_response('rango/index.html', context_dict, context)