【问题标题】:HTML button to run Python运行 Python 的 HTML 按钮
【发布时间】:2015-08-10 01:46:56
【问题描述】:

这是我之前发布的问题的后续问题。

我有一个要运行 python 脚本的 html 按钮:

<form name = "input" action = "script.php" method = "get">
<input type= "submit" name = "submit" value="Submit" />
</form>

它访问的php看起来像:

<?php exec("python /c/wamp/www/thursday.py");?>

我的问题是代码没有执行,并且我的错误日志中没有收到任何内容。我做错了什么?

我的 python 代码将图像组织在一个文件夹中,并根据文件的组织方式要求用户输入文件是否命名不正确。

如果从 Web 服务器运行,python 代码是否仍会要求输入?

我看过的来源:Create HTML button to run Python Scriptrun python script with html button

【问题讨论】:

标签: php python html


【解决方案1】:

如果从 Web 服务器运行,python 代码是否仍会要求输入?

是和不是。当 Python 脚本执行并提示输入时,是的,它将等待输入。但是,它不会向坐在浏览器前面的用户询问它;这不可能发生。 Python 脚本由 php 在您的服务器上执行,用户只需等待 php 脚本返回一些响应 (HTML),然后显示。

如果您想将信息传递给 Python 脚本,您应该通过命令行参数或标准输入从 php 传递数据,然后读取脚本的输出以将其呈现给用户。

但是如果你只坚持一种语言,它会干净得多:要么将逻辑放入 php 脚本中,这样你就可以通过网络服务器轻松地与用户交互,或者将整个 php 脚本替换为一个做同样事情的 Python Web 堆栈。

【讨论】:

  • 谢谢!我的代码的输入部分并不是真正需要的,所以我实际上可以完全删除它。在那种情况下,我仍然会遇到从 html 按钮运行脚本的问题。我会以不同的方式格式化 php 吗?
  • 您仍然无法从客户端浏览器运行服务器端代码并​​期望它是交互式的。 HTTP 的工作原理是向服务器发送请求,然后服务器做出响应。每个交互都必须涉及多个请求,而您不能仅通过 execing 一些脚本来完成。
  • 我明白了。我的意思是,如果我取出我的 python 脚本的交互部分,它在没有提升用户任何输入的情况下运行,它应该可以顺利运行,对吧?我现在已经对脚本执行了该操作,但按钮仍然无法运行脚本。
  • 是的,如果 HTML 表单启动包含 exec 的 php 文件,并且 if 运行 Python 脚本可以在 php 中工作(权限可能是一个问题;您的服务器日志可能会告诉你),那么脚本应该运行。您可以尝试直接在浏览器中打开php文件,这样您可以跳过按键部分进行测试。
猜你喜欢
  • 1970-01-01
  • 2021-10-16
  • 2015-01-03
  • 1970-01-01
  • 2013-02-16
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
相关资源
最近更新 更多