2016-12-14 16 views
0

私のpythonファイルからphpファイルにデータを送信してブラウザに表示しようとしています。pythonからphpファイルにデータを送信

私は次の質問を読んだ:Sending data using POST in Python to PHPと私は質問の答えに私のコードを基づいています。

私のPythonコードはこれまでです:

import urllib2, urllib 

def main(): 
    mydata = [('one', '1'), ('two', '2')] # The first is the var name the second is the value 
    mydata = urllib.urlencode(mydata) 
    path = 'http://localhost/test2.php' # the url you want to POST to 
    req = urllib2.Request(path, mydata) 
    req.add_header("Content-type", "application/x-www-form-urlencoded") 
    page = urllib2.urlopen(req).read() 
    print page 


if __name__ == "__main__": 
    main() 

私のPHPコードは次のとおりです。

<meta http-equiv="refresh" content="1" /> <!-- Updates the whole page each second --> 
<?php 
echo $_POST['one']; 
echo "\n"; 
echo $_POST['two']; 
?> 

が、私はページを更新していますが、それは決してブラウザで1と2を示していない、それは示してい1と2はPythonで印刷されています。どのように私はそれに送信するすべてを示すようにPHPファイルを更新する方法がありますか?

ありがとうございました!

+0

あなたは、物事の仕組みを見るためにもう一度見直さなければなりません。 httpサーバ環境で使用されるphpファイルは、その出力を要求元のクライアントに送信します。これは、更新されたページビュー用のブラウザと、そのスクリプトからのリクエスト用のpythonスクリプトです。これら2つの異なる要求は完全に独立しています。何らかの方法で、あるスクリプトで使用される値が、完全に独立したスクリプト実行で魔法のように表示されるような仕組みはありません。このような値を永続的に格納するためにデータベースを使用したいと考えています。 – arkascha

答えて

0

ブラウザを使用している場合は、Pythonで接続を呼び出さないようにしてください。 ブラウザはデフォルトでPHPページにデータを送信していません。

端末経由でPythonコードを呼び出す場合は、ブラウザには表示されず、結果が表示されます。ブラウザがそのデータを送信していないためです。あなたは私はあなたを助けることができるかもしれ少し手の込んだことができれば

あなただけのPHP

<?php 
var_dump($_POST); 
?> 

に全ての投稿データを取得するためのvar_dumpを使用傾けます。

+0

私はスマートなミラーを作っています。私はheartrate変数と呼吸数変数をアプリケーションに数msごとに更新しています。このデータをスマートミラー画面に表示されるPHPファイルに送信しようとしています。 – user3801533

+0

これをリアルタイムでやりたいのであれば、私の賭けは生のソケットを使うことになります。あなたは両方のプラットフォームでソケットライブラリの束を得るでしょう。 –

+0

ソケットを使用したくない場合は、サーバーをポーリングできます。私はこれをお勧めしません。 pythonの値をファイルまたはデータベースに格納することができます。そこからデータを読み込んで、どこにでも表示するPHPスクリプトを作成します。 –

関連する問題