私はWebサーバーを使い、CGIモジュールを使ってPythonルーチンを呼び出しています。それは難しいですが、それはうまく動作します:)CGI Pythonスクリプトが実行された後、どのようにして私のホームページに自動的に戻ることができますか?
私の問題は、Pythonスクリプトの実行後、私のスクリプトで私のホームページにリダイレクトするルーチンを導入したいと思います。
私はこのフォーラムでこのような質問を見たことがあります。ほとんどの場合、答えはコマンドラインprint("Location:http://your_page")
を使用しますが、私はすでにそれを実行しており、私の場合は動作しません。
次の段落で私は私の全体的な "ミニプロジェクト"を説明しようとし、私はあなたのコードを見せてくれます。
インターネットによる無線ホームシステムのリモートコントロール。言語PythonとPHP、またLinux知識O.S.
このプロジェクトの目的は、Webページ(インターネット接続)のボタンをクリックしてLEDをオンまたはオフにすることです。 LEDは自宅のどこかの無線モジュールにあります。
BeagleBone Black(Debian O.S.)上で動作するApache2 Webサーバーを設定します。ビーグルボーンブラックは、UTPケーブルを介してLANに接続されています。
ESP32モジュールをTCPサーバーとしてプログラミングし、Wi-Fi(LAN)にも接続します。
プログラムされたESP32モジュールとのTCPクライアント接続を実行し、LEDの点灯と消灯を命令するCGIモジュールとしてのPythonスクリプト。スクリプトは、Webページ内のボタンがクリックされると実行されます。
Modem/Routerでポートを前方に設定すると、インターネットからWeb Serverにアクセスできます。
のindex.html(トップページ)
<!DOCTYPE html>
<html>
<head>
<title>Web Server MReyesP!</title>
<style>
.button {
padding: 15px 25px;
font-size: 24px;
text-align: center;
cursor: pointer;
outline: none;
color: #fff;
background-color: #4CAF50;
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
}
.button:hover {background-color: #3e8e41}
.button:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
</style>
</head>
<body>
<h1>Success! The Web Server is working :)</h1>
<h2>Click the Button to run - "LED On/Off program"</h2>
<input class=button onClick="location.href='http://my_web_page.net/cgi-bin/TCPC$
</body>
</html>
これは私の結果のホームページです。私のPythonスクリプトは、ルーチンを実行しますが、戻って私のホームページにリダイレクトされません。その結果 Home page
python_script.py
#!/usr/bin/python3
import socket
import time
import cgitb
cgitb.enable()
print("Content-type: text/html\n\n")
print("<html>\n<body>")
print("<div style=\"with:100%; font-size: 40px; font-weight bold; text-align: c$
print("The LED was turned On and after 2 seconds was turned Off")
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip="192.168.2.112"
port=1234
address=(ip,port)
client.connect(address)
data = 'led_on'
client.sendall(data.encode('utf-8'))
time.sleep(2)
data = 'led_off'
client.sendall(data.encode('utf-8'))
client.close()
print("Location: http://my_web_page.net/\n")
print("</div>\n</body>\n</html>")
。あなたは自分で次の画像の結果を見ることができます。このWebページは永遠に残っています。
あなたは、任意のアイデアを持っていますか?自分のホームページに戻るためにPythonコードに挿入する必要があるのは何ですか?
ありがとうございます。本当にありがとうございます。
注:私はあなたがあなた自身の出力とリダイレクトを印刷したい場合は、リダイレクトを行うには、あなた応じて、簡単なJavaScriptをスニペットを放出する必要がありますのPython 3に
簡単な方法は、現在のLEDステータスのように表示する追加情報とともに、ページを書き直すようにCGIスクリプトを作成することです。 [この古い私の回答](https://stackoverflow.com/a/26059792/4014959)は、あなたのために働く別の方法を示しています。申し訳ありませんがPython 2にありますが、それは修正するのに十分なはずです。 FWIWでは、CGIは最近非常に昔ながらのものと考えられていますが、シンプルなものにはまだ便利だと思います。しかしそれほど簡単ではないもののためにすぐに苦痛を受けます。 ;) –
'入力クラス=ボタンonClick =" location.href = 'http:// my_web_page.net/cgi-bin/TCPC $ '< - その行が正しくありません... – dda