繁体   English   中英

通过单击javascript中的按钮运行python脚本

[英]Run python script by clicking button in javascript

我想要的是运行python脚本,只需单击html页面中的按钮,然后在我的页面上显示python代码结果。

因为这只是一个小项目,所以即使我知道它可以工作,我也不想过分学习Django或其他网络框架。

我进行了一些搜索,ajax似乎是我的正确解决方案,但我不知道如何通过ajax执行python代码。 我知道我可以使用以下代码通过ajax返回一些字符串:

function loadXMLDoc()
{
    var xmlhttp;
    xmlhttp=new XMLHttpRequest();
    xmlhttp.onreadystatechange=function()
    {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","test1.txt",true);
    xmlhttp.send();
}

预先感谢任何可以提供帮助的人。

为了扩展@Liongold的评论,完整的工作流程如下:

概述如何发生

  • 按钮单击的javascript代码将执行。 此代码从浏览器在客户端上运行。
  • AJAX请求就像HTTP请求一样通过Internet发送,该请求由运行Python代码的计算机上运行的Web应用程序解释。
  • python代码创建响应,并将其格式化以发送回客户端。
  • javascript将响应作为纯文本读取,并确定其含义以及使用方法。 JSON是一种非常流行的格式,用于通过AJAX交换数据

你需要做什么

要么:

  1. 了解服务器端python框架。 Flask很轻巧,可以满足您的需求。 我在这里发现的最大障碍是处理跨域(CORS)问题。 http://flask.pocoo.org/docs/0.10/quickstart/开始使用

要么

  1. 看看是否可以将python脚本移植到浏览器中。 该代码是否需要在特定的计算机(服务器)上运行,或者理论上可以将其转换为javascript并在网页内运行。 如果唯一的语言差异是问题,请访问http://www.skulpt.org/

我遇到了类似的问题,经过几个小时的搜索,这就是我解决的方法。 假设html文件和python文件是同一文件夹。

 <script> function runScript() { var request = new XMLHttpRequest(); request.onreadystatechange = function() { if (request.readyState === 4) { if (request.status === 200) { alert('Successful .... ' + request.responseText); } else { alert('Something went wrong, status was ' + request.status); } } }; request.open('POST', 'test.py', true); request.send(null); return false; }; document.getElementById('script-button').onclick = runScript; </script> 
 This goes to your html file ----------------------------- <button type="button" id="script-button"> add this line at the top of your python file --------------------------------------------- test.py ------------ #!C:\\Python34\\python.exe -u print("Testing 123") add this directive to httpd.conf (Apache) ----------------------------------------- # "C:/xampp/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory "C:/xampp/<path to your project on the web server>"> AllowOverride All Options Indexes FollowSymLinks Includes ExecCGI AddHandler cgi-script .py .pyc Order allow,deny Allow from all Require all granted </Directory> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM