2016-11-01 4 views
0

Ich versuche, eine Zeichenfolge an die Python-Callback-Funktion von meinem JQuery $ .getJSON übergeben. Der Wert erreicht den Rückruf jedoch nie. Die Dokumentation ist mir in dieser Angelegenheit nicht klar. Daher habe ich geschwärmt, was ich für eine Lösung aus anderen StackOverflow-Fragen hielt.

Die Variable, die nicht zurückgegeben wird, ist que_token (siehe Code unter). Dieser Prozess läuft sonst erfolgreich über seine Intervallschleife mit Variablen aus der Python-Methode, der seinen Weg zu JQuery ..

<script type=text/javascript> 
var interval = setInterval(
    function() 
    { 
    $.getJSON('/_update_alert', { que_token: "Passing as None" }, function(data) { 
     $("#alert-msg").text(data.result.alert_msg); 
     $("#alert-type").attr("class", data.result.alert_type) 
     var stopSession = data.result.End 
     document.getElementById("log").innerHTML = document.getElementById("log").innerHTML + 
      data.result.message_log + "\n" 
     if (data.result.End == "True") { 
      clearInterval(interval); 
    } 

    }); 
    return false; 
    }, 
    2000); 
</script> 

@app.route('/_update_alert/<que_token>') 
@login_required 
def update_alert(que_token=None): 
    if que_token is None: 
     # que_token should not be None - ERROR 
     que_token = session['que_token'] 
    alert_data = {} 
    ..... 
    return jsonify(result=alert_data) 

Die Python-Spur zeigt, dass der Wert que_token seinen Weg macht zurück .. aber meine Python-Funktion ' update_alert 'hebt es nicht auf.

127.0.0.1 -[01/Nov/2016 14:58:02] "GET /_update_alert?que_token=Passing+as+None HTTP/1.1" 200 - 

Irgendwelche Ideen?

Antwort

0

Mit Kolben request.args.get('que_token', '') in meiner Python-Funktion update_alert() löst diese Frage. Dies ist jedoch nicht so direkt wie das Abrufen von que_token aus dem übergebenen Argument der Funktionen update_alert.

So eine Lösung für meine Frage ist:

@app.route('/_update_alert') 
@login_required 
def update_alert(): 
    que_token = request.args.get('que_token', '') 
    ..... 
    alert_data = {} 
    ..... 
    return jsonify(result=alert_data) 

Ich werde dies als meine Antwort verwenden, wenn jemand nach vorne kommt und erklärt, warum ich nicht die ursprüngliche Methode verwenden (über einen Get-Anfrage Kolben Parameter).

Verwandte Themen