Rufen python-Funktion aus JS
Ich versuche, eine Funktion aufzurufen, in Python, von JavaScript-code. Ich benutzt den code erklärt hier, aber es funktioniert nicht für mich.
Hier ist mein JS-code:
<!DOCTYPE html>
<body>
<script type="text/javascript" src="d3/d3.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script>
text ="xx";
$.ajax({
type: "POST",
url: "~/reverse_pca.py",
data: { param: text}
}).done(function(o) {
console.log(data);
console.log(text);
});
Python-Code:
import csv
from numpy import genfromtxt
from numpy import matrix
def main():
...
return x
if __name__ == "__main__":
x=main()
return x;
Weißt du, was ist Los mit ihm?
~/reverse_pca.py
ist ein relativer Pfad, und es sieht aus wie es gemeint ist, um ein absoluter Pfad sein. Trotzdem sollten Sie erwähnen, irgendwelche Fehlermeldungen (denn "funktioniert nicht" kann vieles bedeuten), und Sie sollten sehen die web-server-logs.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Abgesehen von der erwähnten Punkte und wenn Sie bereits über ein richtiges setup zu dienen, Ihre python-Skript und die Antwort zurückgegeben wird. Sollten Sie eine asynchrone Anforderung, vor allem, wenn Sie die python-code enthält einige schwere Berechnung.
Wenn Sie nur eine leichte Berechnung, und Sie haben kein problem, die Arbeit mit einem code veraltet seit jQuery 1.8, gehen Sie mit dem synchronen Ansatz. Dies ist nicht empfohlen, wie es blockiert den main thread.
Lesen Sie mehr über es hier: Wie gebe ich die Antwort eines asynchronen Aufrufs? und http://api.jquery.com/jquery.ajax/
Nach der Suche für ein paar Stunden, landete ich mit den folgenden, und es funktionierte gut. Hoffe, das hilft jemand in der Zukunft.
HTML-und JS-code: loging.html:
Python-code: app.py: