2016-06-21 6 views
-2

私は、渡された引数に従ってJsonファイルを生成するPython関数を持っています。Ubuntu 12.04.5上でPython関数を呼び出す方法LTS

私たちは、HTMLでWebページの引数選択を行うことにしました。その後、引数をサーバー上のPython関数に渡したいとします。この関数は、ブラウザが表示する特定のJsonファイルを生成します。

私は周りを見回し、人々はHTTPリクエストを参照し続けます。私はこのことから自分の特定の機能を呼び出す方法を単に失いました。

私は、HTTPリクエストを使用して、簡単なコードを見つけましたが、私は、私はまさに私が「合格の代わりに何をすべきかのよう迷ってしまいました、私はそれが私

<button id="demo" onclick="onClickButton()" type="button">Submit the order!</button> 

<script> 
function onClickButton() { 
    xhttp.open("GET", "demo_get.asp", true); 

のために動作させるために変更すべきかに迷ってしまいましたdemo_get.asp "どのようにしてこのコードをサーバーのPython関数を実行するように変更するのですか?

xhttp.send(); 
} 
</script> 

助けていただければ幸いです。どうもありがとうございます。私は質問がちょっと新鮮であることを知っています。

あなたが便利なリンクやチュートリアルを持っている場合は、私がなる非常に感謝し

答えて

0

研究の一週間後、私はフラスコを使用してPythonの機能を設定し、私は、その後私は、次の

をしなければならなかったことを発見このチュートリアルでは、私はたCurを使用するのではなく、その後

http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask

を開始しますl(このチュートリアルで使用されているもの)

私はAJAXではなくAJAX jqueryを使用しました。これは、stackoverflowでのこの応答に従ってです。 Ajaxは同じドメインからの応答のみを許可します。単に "ajaxを使用してクロスドメインWeb APIを呼び出す方法"という質問を検索してください。

私は次のよう

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("button").click(function(){ 
     $.ajax({ 
      contentType : "application/json", 
      dataType : "json", 
      url : "http://localhost:8000/todo/api/v1.0/tasks", 
      type: "GET", 
      //data : jsonfilename_with_arguments, 
//if you want to post then you have to //change the type to post and send 
//your arguments in a json file 
      success: function(data, textStatus, jqXHR) 
    { 
     alert("Data: " + JSON.stringify(data) + "\nStatus: " + textStatus); 
    }, 
    error: function (jqXHR, textStatus, errorThrown){ 
     console.log(textStatus) 
    } 
     }); 
})}); 
</script> 
</head> 
<body> 

<div><h2>Hope it works</h2></div> 

<button>Display Alarm with content</button> 

</body> 
</html> 

にコードを実装私は、サーバーのIPアドレスにURLを変更し、私も自分のコードが実行されていた場所にポートを変更しました。それは次のようにしてある

http://IPAddresss:PORT/todo/api/v1.0/tasks

別のドメインを呼び出すときは、最初の試行で、次のエラーを取得する可能性があります

XMLHttpRequestのIPアドレスをロードすることはできません:ポート/藤堂/ API/v1.0/tasks。 プリフライト要求への応答がアクセス制御チェックを通過しません。いいえ 要求された リソースに 'Access-Control-Allow-Origin'ヘッダーが存在します。したがって、原点「ヌル」はアクセスが許可されません。

はあなたのサーバーのPythonコードに次のコードは、アセス・コントロールを可能にするためにできることを修正するには(それはフラスコでどのように動作するかこれはある)

####################Allow Cross Reference######################## 
@app.after_request 
def after_request(response): 
    response.headers.add('Access-Control-Allow-Origin', '*') 
    response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization') 
    response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE') 
    return response 
####################Allow Cross Reference######################## 
関連する問題