2012-08-28 2 views
5

ich den folgenden Code verwenden:django request.session.get ("Name", False) - Was bedeutet dieser Code?

if request.session.get("name",False): 

Kann mir jemand bitte sagen, was der oben genannte Code tut? Was ich annehmen kann, ist, wenn es "Name" in der Sitzung gibt, gibt es True zurück, andernfalls gibt es False zurück. Ich bin verwirrt mit meinem Code, also habe ich diese Frage hier gepostet.

Danke.

Antwort

13

Wenn session hat einen Schlüssel in der es mit dem Wert "name" es gibt den Wert im Zusammenhang mit diesem Schlüssel (die gut False auch sein mag), sonst (wenn es keinen Schlüssel mit dem Namen „name“) es False zurückgibt.

Die session ist ein wörterbuchähnlicher Typ, daher ist der beste Ort für die Dokumentation get method in den Python-Dokumenten für die Standardbibliothek. Die Kurz der Sache ist, dass get ist eine Abkürzung für die folgenden:

if "name" in request.session: 
    result = request.session["name"] 
else: 
    result = False 

if result: 
    # Do something 
+0

Es tut mir leid, aber ich habe mit dem verwechselt Teil ‚die gut sein könnte‘ (kein Muttersprachler) .So im Fall der Anfrage. session.get ('cart_id', "") Wenn es im dict kein Schlüssel cart_id gibt, würde es einen leeren String zurückgeben, oder? – SuburbanFilth

+0

Nein, es würde 'None' zurückgeben (unter der Annahme, dass es die gleichen Standardwerte wie ein normales Python-Wörterbuch hat). Aber es spielt keine Rolle, da sowohl eine leere Zeichenfolge als auch "None" falsche Werte sind. –

+0

Ich habe gerade eine Bearbeitung des Kommentars gemacht. Was ist dann das Argument nach dem Komma? – SuburbanFilth