在按钮单击时执行 python 脚本

Posted

技术标签:

【中文标题】在按钮单击时执行 python 脚本【英文标题】:Execute a python script on button click 【发布时间】:2013-02-15 13:33:06 【问题描述】:

我有一个带有一个按钮的 html 页面,当我们单击该按钮并返回到同一个 HTML 页面时,我需要执行一个 python 脚本。

所以我需要对返回值做一些验证并执行一些操作。

这是我的代码:

HTML:

<input type="text" name="name" id="name">
<button type="button" id="home" onclick="validate()" value="checkvalue"></button>

JS:

function validate()
    if (returnvalue=="test") alert(test)
    else alert ("unsuccessful")

我的 python 代码正在做的是对在文本框中输入的名称进行一些验证并给出返回状态。

但我需要将结果返回到同一页面,因此我可以稍后提交包含所有详细信息的表单。任何帮助将不胜感激

【问题讨论】:

Python 在服务器端运行,因此最接近的方法是将 AJAX 发送到服务器并返回验证结果。 相关:How to connect javascript to Python sharing data with JSON format in both ways? 【参考方案1】:

您可以使用 Ajax,使用 jQuery 更容易

$.ajax(
   url: "/path/to/your/script",
   success: function(response) 
     // here you do whatever you want with the response variable
   
);

你应该阅读the jQuery.ajax page,因为它有太多的选择。

【讨论】:

就我而言,此代码从文件 URL 下载 python 脚本文件【参考方案2】:

在 python 中创建一个页面(或服务),它可以接受 post 或 get 请求并处理信息并返回响应。如果响应是 json 格式会更好。然后您可以使用此代码在按钮单击时进行调用。

<input type="text" name="name" id="name">
<button type="button" id="home" onclick="validate()" value="checkvalue">
<script>
$('#id').click(function()

 $.ajax(
      type:'get',
      url:<YOUR SERVERSIDE PAGE URL>,
      cache:false,
      data:<if any arguments>,
      async:asynchronous,
      dataType:json, //if you want json
      success: function(data) 
        <put your custom validation here using the response from data structure >
      ,
      error: function(request, status, error) 
        <put your custom code here to handle the call failure>
      
   );
);
</script>

希望对你有帮助

【讨论】:

@Hari 请问 $('#id') 在做什么? '#id' 在这里用作占位符让我们用'home' 之类的东西代替吗(在 OP 的问题的情况下)?如果是这样,我仍然不确定 $ 在做什么 @hello_there_andy,“id”应该替换为您的 html 元素的 id。 '#' 表示它是一个 id jquery 应该寻找的。 $ 是 jquery 对象,它调用 jquery 库。

以上是关于在按钮单击时执行 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

通过单击提交按钮在 Django 网站中运行 Python 脚本

如何在另一个脚本中运行 Python 脚本并立即关闭自身

使用Python单击按钮脚本[重复]

在 Python 中无需单击即可执行函数 | Pyside [重复]

如何从 html 按钮执行 python 脚本?

SwiftUI 在单击时执行脚本并在视图窗口上返回输出