2016-04-14 8 views
1

Wie würde ich schaffen eine if ... else Zustand zu überprüfen folgendes zu überprüfen:Zustand URL Abfrage

if the URL ends with this /default/add?a=1&b=1 
    compute something 
else the URL ending with this /default/add/1/1 
    compute this 

So weit meine Funktion sieht wie folgt aus. Ich bin in der Lage, die erste Bedingung zu berechnen, aber ich denke nicht, dass es korrekt ist.

def add(): 
if URL(scheme=True,args=[add]): 
    a1 = int(request.vars.a) 
    b1 = int(request.vars.b) 
    return a1+b1 
else: 
    a2 = int(request.args[0]) 
    b2 = int(request.args[1]) 
    return a2+b2 

Wenn ich versuche es gegen/default zu testen/add/1/1, ich die folgende Fehlermeldung erhalten:

a1 = int(request.vars.a) 
TypeError: int() argument must be a string or a number, not 'NoneType' 

Antwort

2

für /default/add?a=1&b=1 Verwendung:

a1 = int(request.vars['a']) 
b1 = int(request.vars['b']) 

und für /default/add/1/1 verwenden:

a2, b2 = map(int, tuple(request.args)) 
0

Anfrage .vars ist ein dict, so Syntax sollte wahrscheinlich sein:

a1 = int(request.vars['a']) 

Edit: user1434070 mich, um es zu schlagen - sorry für die Betrogene

0

URL(scheme=True,args=[add]) erzeugt eine URL - es ist nicht die URL der überprüft aktuelle Anfrage Stattdessen möchten Sie:

if 'a' in request.vars and 'b' in request.vars: 
Verwandte Themen