Flask 表单:将两个不同输入字段中的两个数字相乘,并在第三个输入字段中填充结果,而不刷新页面

Flask 表单:将两个不同输入字段中的两个数字相乘,并在第三个输入字段中填充结果,而不刷新页面,flask,flask-wtforms,flask-restful,Flask,Flask Wtforms,Flask Restful,我正在开发一个功能,如果我将值输入到两个不同的输入字段中,那么我应该在不刷新页面的情况下将值相乘并显示到第三个输入框中 例如:- 代码:- forms.py routes.py @app.route('/multiply') def multiply(): form = Multiply() return render_template('multiply.html', form=form) multiply.html <form> {{ form.num

我正在开发一个功能,如果我将值输入到两个不同的输入字段中,那么我应该在不刷新页面的情况下将值相乘并显示到第三个输入框中

例如:-

代码:- forms.py

routes.py

@app.route('/multiply')
def multiply():
    form = Multiply()
    return render_template('multiply.html', form=form)
multiply.html

<form>
    {{ form.number1.label }} {{ form.number1(class="form-control") }}
    {{ form.number2.label }} {{ form.number2(class="form-control") }}
    {{ form.result.label }} {{ form.result(class="form-control") }}
</form>

{{form.number1.label}{{form.number1(class=“form control”)}
{{form.number2.label}{{form.number2(class=“form control”)}
{{form.result.label}{{form.result(class=“form control”)}

我是新手,所以我不知道怎么做。

您要做的是动态更新视图。HTML需要javascript的帮助来动态更新页面(在您的例子中是结果)

这可以通过对后端编写的API的AJAX调用来实现,该API将两个值作为数据接收,计算结果并将其发送回(可能还同时存储)


您要做的是动态更新视图。HTML需要javascript的帮助来动态更新页面(在您的例子中是结果)

这可以通过对后端编写的API的AJAX调用来实现,该API将两个值作为数据接收,计算结果并将其发送回(可能还同时存储)


您会发现烧瓶文档中描述了这个确切的示例

JSON视图函数:

from flask import Flask, jsonify, render_template, request
app = Flask(__name__)

@app.route('/_add_numbers')
def add_numbers():
    a = request.args.get('a', 0, type=int)
    b = request.args.get('b', 0, type=int)
    return jsonify(result=a + b)

@app.route('/')
def index():
    return render_template('index.html')
Html模板:

<script type=text/javascript>
 $(function() {
  $('a#calculate').bind('click', function() {
   $.getJSON($SCRIPT_ROOT + '/_add_numbers', {
    a: $('input[name="a"]').val(),
    b: $('input[name="b"]').val()
   }, function(data) {
    $("#result").text(data.result);
   });
   return false;
  });
 });
</script>
<h1>jQuery Example</h1>
<p><input type=text size=5 name=a> +
 <input type=text size=5 name=b> =
 <span id=result>?</span>
<p><a href=# id=calculate>calculate server side</a>

$(函数(){
$('a#calculate').bind('click',function(){
$.getJSON($SCRIPT\u ROOT+'/\u add\u numbers'{
a:$('input[name=“a”]”)。val(),
b:$('input[name=“b”]”)。val()
},函数(数据){
$(“#结果”).text(data.result);
});
返回false;
});
});
jQuery示例
+
=
?


您会发现烧瓶文档中描述了这个确切的示例

JSON视图函数:

from flask import Flask, jsonify, render_template, request
app = Flask(__name__)

@app.route('/_add_numbers')
def add_numbers():
    a = request.args.get('a', 0, type=int)
    b = request.args.get('b', 0, type=int)
    return jsonify(result=a + b)

@app.route('/')
def index():
    return render_template('index.html')
Html模板:

<script type=text/javascript>
 $(function() {
  $('a#calculate').bind('click', function() {
   $.getJSON($SCRIPT_ROOT + '/_add_numbers', {
    a: $('input[name="a"]').val(),
    b: $('input[name="b"]').val()
   }, function(data) {
    $("#result").text(data.result);
   });
   return false;
  });
 });
</script>
<h1>jQuery Example</h1>
<p><input type=text size=5 name=a> +
 <input type=text size=5 name=b> =
 <span id=result>?</span>
<p><a href=# id=calculate>calculate server side</a>

$(函数(){
$('a#calculate').bind('click',function(){
$.getJSON($SCRIPT\u ROOT+'/\u add\u numbers'{
a:$('input[name=“a”]”)。val(),
b:$('input[name=“b”]”)。val()
},函数(数据){
$(“#结果”).text(data.result);
});
返回false;
});
});
jQuery示例
+
=
?


似乎您需要AJAX、Angular或其他javascript库之类的东西来为您做到这一点。检查一下!似乎您需要AJAX、Angular或其他javascript库之类的东西来完成这项工作。检查一下!