【问题标题】:Can you execute python in html你能在html中执行python吗
【发布时间】:2019-09-08 01:55:42
【问题描述】:

假设我编写了一个带有表单的简单 html 页面。该表单有 3 个输入字段,用户填写并按下提交按钮。是否可以从 html 中获取 3 个输入字段的值,在 jquery 中使用 ajax 之类的东西并执行 python 脚本,同时将这些表单值作为变量发送到该脚本?

在我读到这个主题的所有地方,指南总是使用 Flask 在 python 脚本中返回 html 代码。问题是我已经有了 html,我需要的只是让这个表单触发 python 脚本,并在按下脚本已执行的按钮后让用户知道。我真的不想认为我需要再次在 python 中编写我的标记!

这样的事情可能吗?

【问题讨论】:

  • 您在网站上使用的服务器端脚本语言是什么?如果不是 Python,为什么你特别需要使用 Python?这是可能的,但如果您只是使用标准设置(无框架),我觉得使用 PHP 脚本之类的东西会更容易。
  • 并非所有服务器都允许您运行 Python 脚本。它必须使用CGI。大多数脚本必须在特殊文件夹中。至于 Flask——它不必发送 HTML——一切都取决于你。它可以发送可用于 AJAX 的 JSON 数据。

标签: python jquery html ajax cgi


【解决方案1】:

感谢@Zak:

由于您要求在HTML 页面内完成此操作,因此我正在回答这个问题。我觉得没有必要提及随之而来的严重警告和影响.. 我相信您比我更了解.py 脚本的安全性:-)

我会使用jQuery 库中的.ajax() 函数。这将允许您调用您的 Python 脚本只要该脚本位于可公开访问的 html 目录中 ...也就是说,这是我告诉您注意安全预防措施的部分...

<!DOCTYPE html>
<html>
  <head>    
  </head>
  <body>
    <input type="button" id='script' name="scriptbutton" value=" Run Script " onclick="goPython()">

    <script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

    <script>
        function goPython(){
            $.ajax({
              url: "MYSCRIPT.py",
             context: document.body
            }).done(function() {
             alert('finished python script');;
            });
        }
    </script>
  </body>
</html>

此外 .. 值得注意的是,您的脚本必须具有适当的权限,例如,www-data 用户才能运行它...chmod 和/或@987654330 @ 可能是必要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    相关资源
    最近更新 更多