想要在web端某个按钮的js代码中,使用ajax来调用服务端的一个python脚本,从数据库取出数据并写入服务端的另一个html文件中,可以实现吗?
w3c上有这样的一个例子,不过是用的asp文件,而且只是操作了原来的html,(代码是response.write("<table>"))
所以想来问下可以用python来实现这一想法吗。。
想要在web端某个按钮的js代码中,使用ajax来调用服务端的一个python脚本,从数据库取出数据并写入服务端的另一个html文件中,可以实现吗?
w3c上有这样的一个例子,不过是用的asp文件,而且只是操作了原来的html,(代码是response.write("<table>"))
所以想来问下可以用python来实现这一想法吗。。
用Flask很简单的:比如:
index.html 放到templates文件夹下:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<script type=text/javascript>
$(function() {
$('#calculate').click(function(){
$.ajax({
url: '/addnumber',
data:{
a: $('#a').val(),
b: $('#b').val()
},
dataType: 'JSON',
type: 'GET',
success: function(data){
$("#result").html(data.result);
}
});
});
});
</script>
</head>
<body>
<div class="container">
<div class="header">
<h3 class="text-muted">addNum</h3>
</div>
<hr/>
<div>
<p>
<input type="text" id='a' size="5" name="a"> +
<input type="text" id='b' size="5" name="b"> =
<span id="result">?</span>
<p><button class="btn btn-success" id="calculate">calculate</button>
</form>
</div>
</div>
</body>
</html>
python脚本run.py
:
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
@app.route('/')
@app.route('/index.html')
def index():
return render_template('index.html')
@app.route('/addnumber')
def add():
a = request.args.get('a', 0, type=float)
b = request.args.get('b', 0, type=float)
return jsonify(result=a + b)
if __name__ == "__main__":
app.run()
安装好了flask之后,直接python run.py即可
ajax就是发送了一个http请求到后台,后台要做的就是接收这个请求,处理并返回结果,用Python做个http服务器就好了,这方面有很好的框架,flask就不错你可以试试
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.7k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
5 回答8k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.8k 阅读
JS
毕竟是前端逻辑,你可以通过AJAX
向后台发送一个请求,后台代码(譬如Java
)完成对Python
脚本的调用。补充内容:
Http的原理就已经限定了浏览器和服务器通信的过程:
AJAX
本质上也只是异步向服务端发送请求而已,真正在服务器上做处理的,依然是网站的后台代码,AJAX不能直接操作服务器上的东西
。原理理解了,代码只是工具而已。
你用Flask,那么你有两种方法可以操作服务器上的文件:
调用你要调用的脚本就好了。