2017-12-12 3 views
-2

Warum check_email Fehler, ich weiß nicht, wie esPython Unbound Lokale Variabel

def getLoginDetails(): 
    with sqlite3.connect('database.db') as conn: 
     cur = conn.cursor() 
     if 'email' not in session: 
      loggedIn = False 
      firstName = '' 
      noOfItems = 0 
     else: 
      loggedIn = True 
      cur.execute("SELECT userId, firstName FROM users WHERE email = '" + session['email'] + "'") 
      userId, firstName = cur.fetchone() 
      if 'email' == "[email protected]": 
       check_email = True 
      else: 
       check_email = False 
      cur.execute("SELECT count(productId) FROM kart WHERE userId = " + str(userId)) 
      noOfItems = cur.fetchone()[0] 
    conn.close() 
    return (loggedIn, firstName, noOfItems, check_email) 

@app.route("/") 
def root(): 
    loggedIn, firstName, noOfItems, check_email = getLoginDetails() 
    with sqlite3.connect('database.db') as conn: 
     cur = conn.cursor() 
     cur.execute('SELECT productId, name, price, description, image, stock FROM products') 
     itemData = cur.fetchall() 
     cur.execute('SELECT categoryId, name FROM categories') 
     categoryData = cur.fetchall() 
    itemData = parse(itemData) 
    return render_template('home.html', itemData=itemData, loggedIn=loggedIn, firstName=firstName, noOfItems=noOfItems, categoryData=categoryData, check_email=check_email) 

Das macht keinen Sinn für mich zu beheben, wie ich auch klar check_email als einer der ersten Zeilen meines Codes initialisieren, und ich Ich habe es als global bezeichnet, um sicher zu gehen und sicherzustellen, dass es im Rahmen all meiner Methoden liegt.

Fehler: UnboundLocalError: lokale Variable 'check_email' vor der Zuweisung referenziert

+3

Ich weiß auch nicht, bis ich den tatsächlichen Fehler sehe ... – Julien

+0

UnboundLocalError: Lokale Variable 'check_email' referenziert vor Zuweisung –

+2

Identifizieren * wo * der Fehler auftritt, ist normalerweise auch ziemlich hilfreich. –

Antwort

0

Sie nicht zuordnen zu check_email wenn 'email' not in session.

+0

wahh danke, es funktioniert –