HTML按钮在客户端运行服务器上的Python脚本,然后将结果发送到客户端网页
我看到之前有一些类似的问题,但我找不到完全一样的。我有一个网页(在服务器上),我希望用户点击一个按钮,这个按钮会执行一个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也都有不错的文档。