HTML按钮在客户端运行服务器上的Python脚本,然后将结果发送到客户端网页

1 投票
1 回答
3467 浏览
提问于 2025-04-18 17:31

我看到之前有一些类似的问题,但我找不到完全一样的。我有一个网页(在服务器上),我希望用户点击一个按钮,这个按钮会执行一个Python脚本。我希望这个Python脚本在服务器上运行,然后把结果发送回网页并显示出来。

当用户点击按钮时,发送到服务器的数据将是一个XML文件。

我就是不知道从哪里开始做这些事情。我可以用什么来实现这个呢?

谢谢你的时间。

补充说明:其实我已经把网页做好了,并且它能生成XML文件。我只需要在用户点击网页上的按钮时运行Python脚本。不知道这是否有帮助,但我还是想说一下。谢谢。

我希望能得到一个高层次的解释,因为我对已经建议给我的内容并不太了解。谢谢!

1 个回答

3

Python有很多网页库可以使用。你可以试试Bottle这个库,它不需要安装,只需把“bottle.py”这个文件放到你的工作文件夹里就行了。下面是一个简单的例子:

    from bottle import route, run, static_file, post, request
    @route('/js/<filename>')
    def js(filename):
        return static_file(filename, root='js')

    @route('/')
    def index():return static_file('tst.html', root='./')

    @post('/xml')
    def xml():
        for x in request.forms:
            print(x)
        return {'return': 'accepted'}

    run(host='0.0.0.0', port=8000)

还有HTML部分:

<!DOCTYPE html>
<html lang="ro">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>TTL</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
<button onclick="test()">Test</button>
<script type="text/javascript">
    function test() {
        $.ajax({
            url: 'xml',
            type: 'POST',
            data: '<my><xml>string</xml></my>',
            dataType: 'json',
            success: function (ret) {
                alert(ret['return']);
            }
        });
    }
</script>
</body>
</html>

抱歉用到了JQuery,懒得写普通的JavaScript XMLHttpRequest。Bottle的文档写得很好,不过cherrypy、pyramid、django和tornado也都有不错的文档。

撰写回答