嗨,一种可能的解决方案是使用带有flask的ajax在javascript和python之间进行通信。您将使用烧瓶运行服务器,然后在浏览器中打开该网站。通过这种方式,您可以在通过 pythoncode 或使用按钮创建网站时运行 javascript 函数,在本示例中它是如何完成的。
在 getJSON 中,函数参数接收 python 函数的结果。在这里,您可以根据输出运行 js 代码并将函数 foo(z) 作为 if 条件运行
您还可以使用烧瓶确定要向客户显示的 js 代码。
HTML 代码:
<html>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function pycall() {
$.getJSON('/pycall', {content: "content from js"},function(data) {
//run here your function on if(data.result==0) for example
alert(data.result);
});
}
</script>
<button type="button" onclick="pycall()">click me</button>
</html>
蟒蛇代码:
from flask import Flask, jsonify, render_template, request
app = Flask(__name__)
def load_file(file_name):
data = None
with open(file_name, 'r') as file:
data = file.read()
return data
@app.route('/pycall')
def pycall():
content = request.args.get('content', 0, type=str)
print("call_received",content)
return jsonify(result="data from python")
@app.route('/')
def index():
return load_file("basic.html")
import webbrowser
print("opening localhost")
url = "http://127.0.0.1:5000/"
webbrowser.open(url)
app.run()
python中的输出:
call_received content from js
浏览器中的警报:
data from python