执行CGI Python脚本后,如何自动返回到我的主页?
我一直在玩Web服务器,并使用CGI模块调用Python例程。这是具有挑战性的,但它工作正常:)执行CGI Python脚本后,如何自动返回到我的主页?
我的问题是在Python脚本执行后,我想介绍一个例程在我的脚本再次重定向到我的主页。
我在这个论坛看到类似这样的问题,在大多数情况下的答案是:使用命令行print("Location:http://your_page")
,但我已经发现它并且在我的情况下不起作用。
在下一段中,我将尝试解释我的整个“小型项目”,然后让我看看我的代码。
通过互联网远程控制无线家庭系统。语言Python和PHP,以及Linux知识O.S.
该项目的目的是点击网页上的按钮(互联网连接)打开和关闭LED。 LED位于家中的某个无线模块中。
设置在BeagleBone Black(Debian O.S.)上运行的Apache2 Web服务器。 Beagle Bone Black通过UTP电缆连接到局域网。
将ESP32模块编程为TCP服务器并连接到Wi-Fi(LAN)。
作为CGI模块的程序化Python脚本,用于执行与ESP32模块的TCP客户端连接,并命令开启并关闭LED。该脚本在网页中单击按钮时执行。
在调制解调器/路由器上设置端口以允许从互联网访问Web服务器。
的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>
这是我得到的主页。 Home page
python_script.py
#!/usr/bin/python3import 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>")
至于导致我的Python脚本执行程序,但不重定向到我的主页。您可以自己看到下一张图片的结果。这个网页永远保持。
你有什么想法?我必须在我的Python代码中插入什么才能返回到我的主页?
谢谢你们,我非常感谢你们的时间和帮助。
注:我使用Python 3
回答:
如果你想打印自己的输出和重定向,你需要发出简单的JavaScript代码段在你的回应做重定向。
如果根本不需要CGI的输出,则需要打印Location:标题,然后再打印终止标题的双精度\ n \ n。您还需要添加“伪”标题状态:设置301或302响应代码。
以上是 执行CGI Python脚本后,如何自动返回到我的主页? 的全部内容, 来源链接: utcz.com/qa/258371.html