2016-09-30 10 views
2

JSONを出力するJavaScriptでプログラムを作成しました。私がしたいのは、ボタンをクリックするだけで、そのJSONをPythonスクリプトの引数として渡したいと思います。JavaScriptを使用してボタンをクリックして引数付きのPythonスクリプトを実行する方法

私はこれを続行するかどうかは全くわからない:

$.ajax({ 
url: "/path/to/your/scriptPython", 
success: function(response) { 
    // here you do whatever you want with the response variable 
} 
}); 

すべてのフィードバックやヘルプが理解されます。

+0

だけでなく、あなたの質問は、あなたが必要とする、少しも一般的ですPythonのバックエンドは、基本的には、ルートを処理し、そのルートがヒットして、必要なメソッドを呼び出し、それらに引数(json)を渡すと、多くのPythonフレームワークもあなたのニーズに応じてこれを実現します。基本的なプロジェクト – StackOverMySoul

+0

@Davidlrntウェブサイトとスクリプトの両方を自分のマシン上でローカルに実行する場合はどうしたらいいですか? (localhost) – blazerix

+0

ウェブサイトはブラウザのjs以外のローカルマシン上のスクリプトを実行することはできません。また、これを回避するハックはありません。セキュリティ上の大きな問題になります。あなたが行うことができるのは、クライアントからのHTTP要求をクライアントから受信し、そこを傍受してそこでコードを実行するAPIです。すべてローカルの場合は、ローカルで実行しているフラスコアプリを持つことができます。ローカルホスト上でHTTPリクエストを聞きます。 – StackOverMySoul

答えて

0

これは1つの重要な考慮事項に依存します:あなたのPythonコードはどこですか?

Pythonをユーザのマシン上で実行したい場合、セキュリティ対策のために複雑になります。ウェブサイトは一般的に、視聴者のマシン上で任意のコードを実行することはできません。 (例えば、Pythonコードがハードドライブを拭き取ったとしたらどうでしょう?)この場合、ユーザーにJSONをファイルとしてダウンロードさせてから、Pythonプログラムで開きます。

Pythonをサーバーで実行したい場合は、スクリプトのエンドポイントにPOSTリクエストを行い、POSTデータにJSONを渡すことができます。これの詳細はPythonのWebフレームワーク(私はフラスコの好きよ)の選択に依存しますが、JavaScriptはほとんど同じになります:

$.ajax({ 
    type: 'POST', 
    data: my_json_variable, 
    url: 'http://example.com/python_endpoint', 
    success: function(response){ /* deal with the script's output */ } 
}); 
+0

ウェブサイトは私のマシン(localhost)上でローカルに実行され、pythonスクリプトも私のマシンにあります – blazerix

関連する問題