因此,我尝试为网页创建一个按钮。该按钮的功能是从 Raspberry Pi 运行我的Python脚本。我尝试按照 CgiScript 指南进行操作。但是,当我单击按钮时,它只向我显示了网页上的脚本,而不是从Pi上的Thonny IDLE运行它。 这是我的 HTML 代码
<div class="container-fluid">
{!! BootForm::inline(['route'=>['logs.store'],'method'=>'POST']) !!}
{!! BootForm::select('guest_id', 'Guest Name',\App\Guest::pluck('last_name','id'),null, [])!!}
{!! BootForm::tel('guest_id_number','ID Number',null, ['required']) !!}
{!! BootForm::select('department_to_visit','Department to Visit', App\Department::pluck('dept_code','dept_id'),null,[]) !!}
{!! BootForm::text('purpose',null,null,['required']) !!}
{!! BootForm::submit('Save') !!}
{!! BootForm::close() !!}
</div>
这是我的 Python 脚本 def main():
<!DOCTYPE HTML>
<html>
<head>
<title>Twisted Twister</title>
<link rel="shortcut icon" href="favicon.png">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Language" content="nl-nl">
<meta http-equiv="Content-Language" content="en-gb">
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1252" >
<style>
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 30px;
color: #FFB0FE
background url("texture.png")
}`
#fixed {
position: fixed;
top: 0;
left: 0;
}
#arrowPad {
border: 10px #FFFFFF;
}
#USERDATA {
background: 10px #FFFFFF;
}
#USERDATA.h {
background: 10px #FFFFFF;
}
#USERDATA.h:hover {
background: 10px #FFFFFF;
}
</style>
<body>
<>
<div id="USERDATA"></div>
<script type="text/javascript" src="jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
setInterval(function () {
$('#USERDATA').load('RequestUserData.php')
}, 200);
})
</table>
</script>
<table>
<div id="PI"></div>
<script type="text/javascript" src="jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
setInterval(function () {
$('#PI').load('RequestPiData.php')
}, 200);
});
</script>
</table>
<div id="fixed">
<table id="arrowPad">
<tr>
<td id="USERDATA" class="h"><a href="/usr/lib/cgi-
bin/aantalSpelers2.py" ><img src="https://imgflip.com/s/meme/Blank-Nut-
Button.jpg" width="150" height="150" id="a2" alt="PythonScript"></img></a>
</td>
</tr>
</table>
</div>
</body>
</html>
所以基本上我想做的是点击网页上的按钮并运行脚本。
答案 0 :(得分:0)
从HTML调用Python代码并不像创建指向文件路径的超链接那样容易(但是一旦了解了基础知识,也就不会很复杂)。
为了使您的HTML代码可从HTML页面访问,您需要在后面运行适当的Python网络服务器(例如Flask)。
以Flask为例-如果您想要一个按钮来触发某个功能(例如foo()
),则需要注册一个将URL映射到该功能的“端点”(示例取自here):
from flask import Flask
app = Flask(__name__)
@app.route("/")
def foo():
pass # define the action here
...
假设您正在与前端位于同一主机上的端口5000上运行Flask服务器,则该按钮需要链接至类似
...
<a href="http://localhost:5000/">click here</a>
...
没有返回值,实际的处理仅发生在后端-前端没有注意到。当涉及到返回值时(我假设您的示例就是这种情况),事情变得更具挑战性。我只能推荐Flask Mega Tutorial (by Miguel Grinberg)。它涵盖了许多基础知识以及相当高级的功能-可以帮助您布局我们的应用程序。
希望这对您有帮助...