2016-08-31 12 views
0

Ich bin vor kurzem in Sitzung und Cookies. Ich verstehe Session und Cookies gut in der Theorie, aber ich habe ein Problem, den Code der Sitzung zu verstehen. Es geht darum, das last_visit vom Benutzer zu bekommen. Der Code ist vom tangowithdjango.comrequest.session.get ('last_visit') ergibt keine die ganze Zeit

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) 

Als ich versuchte zu verstehen, was (‚LAST_VISIT‘) request.session.get hat, erhalte ich keine ganze Zeit. Was ich nicht verstehe, ist der Schlüssel "last_visit". Ist es Standardobjekt innerhalb der Sitzung? Wenn es im Sitzungsobjekt standardmäßig ist, dann zeigt es in meinem Terminal jedesmal Keine an.

Bitte jemand mich verstehen, das Objekt innerhalb get() übergeben.

+0

Ihre Vertiefung fixieren, plz. – levi

+0

@levi Können Sie das bitte jetzt beantworten? – pythonBeginner

+0

können Sie Ihren gesamten Ansichtscode posten? – levi

Antwort

0

Bewegen Sie RequestContext Sachen nach unten

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) 
+0

http://www.tangowithdjango.com/book/chapters/cookie.html. Hier steht RequestContext ganz oben. Meine Hauptfrage ist, was 'last_visit' ist. Ist es in Objekt innerhalb von Sitzungen Objekt? Wie man sieht, was in request.session ist? – pythonBeginner

+0

@pythonLover print 'request.session.keys()' – levi

+0

Ich bekomme nur diese 3 Session dict_keys (['_ auth_user_backend', '_auth_user_hash', '_auth_user_id']). Von wo ist 'last_visit' zu request.session gekommen? – pythonBeginner

Verwandte Themen