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

2024-05-16 09:57:12 发布

您现在位置:Python中文网/ 问答频道 /正文

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

因为这只是一个小项目,所以我不想过度学习Django或其他web框架,即使我知道它会起作用

我做了一些搜索,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();
}

提前感谢任何能提供帮助的人


Tags: 项目django字符串代码脚本框架webhtml
2条回答

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

这是如何发生的概述

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

你需要做什么

要么:

  1. 学习服务器端python框架。烧瓶很轻,可能会做你想做的事。我在这里发现的最大障碍是处理跨来源(CORS)问题。从http://flask.pocoo.org/docs/0.10/quickstart/开始

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

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

&13; 第13部分,;
<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>
和#13;
和#13;

相关问题 更多 >