Построение ответа от https://stackoverflow.com/a/49335121/3950745. Я знакомлюсь с колбой. Тем не менее, у меня есть проблема, где мне нужно запустить скрипт Python на основе определенных полей ввода.
У меня есть этот класс
class FooBar(FlaskForm):
foo = StringField('Name1', validators=[DataRequired()])
bar = StringField('Name2', validators=[DataRequired()])
Который я вызываю через route.py
@app.route('/compute', methods=['GET', 'POST'])
def compute():
form = FooBar()
return render_template('compute.html', title='FooBar', form=form)
Файл HTML выглядит следующим образом
{% extends "base.html" %}
{% block content %}
<form action="" method="post" novalidate>
{{ form.hidden_tag() }}
<div id="homeTeam">
<p>
{{ form.foo.label }}<br>
{{ form.foo(size=32) }}<br>
</p>
</div>
<div id="awayTeam" >
<p>
{{ form.bar.label }}<br>
{{ form.bar(size=32) }}<br>
</p>
</div>
<script type=text/javascript>
$(function() {
$('a#test').bind('click', function() {
$.getJSON('/background_process_test',
function(data) {
//do nothing
});
return false;
});
});
</script>
<div class='container'>
<h3>Test</h3>
<form>
<a href=# id=test><button class='btn btn-default'>Test</button></a>
</form>
</div>
</form>
{% endblock %}
Что является просто комбинацией связанного ответа и 2 пустых текстовых полей.
В идеале я хочу вызвать функцию, подобную
@app.route('/background_process_test')
def background_process_test(name1, name2):
return name1+name2
, которая возвращает объединенные имена. Как мне ввести информацию в функцию?