Flask-在按钮OnClick事件上调用python函数

我是python和Flask的新手。我有一个带按钮的Flask Web App。当我单击按钮时,我想执行python方法而不是Javascript方法。我怎样才能做到这一点?

我看过python的示例,它使用这样的表单标签将我重定向到新页面

<form action="/newPage" method="post">

但我不希望它将我重定向到新页面。我只希望它执行python方法。 我正在为Raspberry Pi机器人汽车制作这个。当我按下前进按钮时,我希望它运行“向前转动车轮”方法。

按钮HTML代码(index.html)

<button name="forwardBtn" onclick="move_forward()">Forward</button>

简单的app.py代码-位于此处的move_forward()方法

#### App.py code

from flask import Flask, render_template, Response, request, redirect, url_for

app = Flask(__name__)

@app.route("/")

def index():

return render_template('index.html');

def move_forward():

#Moving forward code

print("Moving Forward...")

我在Stackoverflow上看到过类似的问题,但是它们似乎无法回答我的问题,或者我无法理解答案。如果有人可以为我提供一种在按钮单击事件上调用Python方法的简单方法,将不胜感激。

回答:

你可以简单地在AJAX的帮助下完成此操作…这是一个示例,该示例调用python函数,该函数在不重定向或刷新页面的情况下打印问候。

在app.py中,将其放在代码段下方。

#rendering the HTML page which has the button

@app.route('/json')

def json():

return render_template('json.html')

#background process happening without any refreshing

@app.route('/background_process_test')

def background_process_test():

print ("Hello")

return ("nothing")

并且你的json.html页面应如下所示。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<script type=text/javascript>

$(function() {

$('a#test').bind('click', function() {

$.getJSON('/background_process_test',

function(data) {

//do nothing

});

return false;

});

});

</script>

//button

<div class='container'>

<h3>Test</h3>

<form>

<a href=# id=test><button class='btn btn-default'>Test</button></a>

</form>

</div>

在这里,当你按下控制台中的“测试简单”按钮时,你可以看到“ Hello”正在显示,而没有任何刷新。

以上是 Flask-在按钮OnClick事件上调用python函数 的全部内容, 来源链接: utcz.com/qa/436363.html

回到顶部