2016-08-02 15 views
0

Ich habe den folgenden Code:Python-Funktion löscht meine Var?

def moveServo(x, y): 
    print x 
    print y 
    s1.ChangeDutyCycle(x) 
    s2.ChangeDutyCycle(y) 
    print "Successfull" 
    print x 
    print y 

@app.route('/cameramove/', methods=['GET']) 
def cameramove(): 
    ret_data = True 

    x = request.args.get('x') 
    y = request.args.get('y') 
    moveServo(x, y) 

    return jsonify(ret_data) 

Die Ausgabe lautet:

192.168.178.23 - - [02/Aug/2016 19:36:24] "GET /cameramove/?x=7.8&y=9.3 HTTP/1.1" 500 - 
7.8 
9.4 
192.168.178.23 - - [02/Aug/2016 19:36:24] "GET /cameramove/?x=7.8&y=9.4 HTTP/1.1" 500 - 
7.8 
9.4 

Sie sehen, dass die Funktion die Variablen zurückgesetzt. Aber wenn ich die Definition des var des ändern:

def moveServo(x, y): 
    print x 
    print y 
    s1.ChangeDutyCycle(x) 
    s2.ChangeDutyCycle(y) 
    print "Successfull" 
    print x 
    print y 

@app.route('/cameramove/', methods=['GET']) 
def cameramove(): 
    ret_data = True 

    x = 5.6 
    y = 3.9 
    moveServo(x, y) 

    return jsonify(ret_data) 

Der Ausgang:

192.168.178.23 - - [02/Aug/2016 19:40:44] "GET /cameramove/?x=6.8&y=9.1 HTTP/1.1" 500 - 
5.6 
3.9 
Successfull 
5.6 
3.9 

Ist es auf einmal arbeiten: O

Kann mir jemand helfen? Ich habe keine Ahnung, warum die Funktion die Variablen nicht akzeptieren würde.

+1

Ein wenig mehr Kontext hier helfen kann .. z.B. Was macht der Dekorateur? Was ist in "Anfrage"? – norok2

+1

Ihr Protokoll schlägt vor, dass der HTTP-Statuscode 500 ist, was "Serverfehler" bedeutet, und es gibt kein "erfolgreich" im ersten Protokoll - wahrscheinlich weil 'request.args.get ('x')' eine Zeichenfolge zurückgibt, die nicht funktioniert als Eingabe für 'ChangeDutyCycle' (nur Raten). Versuchen Sie 'request.args.get ('x')' mit 'float (request.args.get ('x'))' 'zu ersetzen. (Gleiches für y) – janbrohl

Antwort

0

ich landete mit:

float(request.args.get('x'))