【发布时间】:2018-10-07 02:58:37
【问题描述】:
我有一个 Flask 应用程序,它有一个用户可以输入句子的页面。我想获取这个用户输入并将其输入到 Flask 方法中,该方法将对那个句子执行一些计算,然后返回结果(这是一个字符串)。
理想情况下,我希望它返回到同一页面上,就在表单的提交按钮下方。
目前,我正在尝试使用 javascript 来做到这一点。这是我目前所拥有的:
结果.html
<head>
<script type=text/javascript>
$(function() {
$('a#test').bind('click', function() {
$.getJSON('/result_sentence',{
sentence: $('textarea[name="sentence"]').val()}, function(data) {
// do nothing
document.getElementById('display').innerHTML = data.result;
});
return false;
});
</script>
</head><body>
<!-- The form where the user inputs -->
<div id="interactive" style="margin-top:50px">
<textarea style="width:100%;" rows="3" name="sentence" placeholder="Enter your sentence"></textarea>
<a href="#" id=test button type="submit" class="btn btn-lg btn-success"> Predict </a>
<label> I predict.. </label>
<p><span id='display'></span></p>
</div>
app.py
@app.route('/result_sentence')
def result_sentence():
sentence = flask.request.args.get('sentence')
pred = getPrediction(sentence)
return jsonify(result=pred)
另外,应该注意的是,在 results.html 上,我已经调用了另一个 Flask 函数,它将我的 Flask 应用程序重定向到 results.html 并显示了一些图表。
所以我面临的主要问题是我不确定为什么单击按钮时什么都没有发生。在我看来,当单击按钮时,它应该将句子传递给 Flask 函数并执行计算。 我查看了一堆已经在 StackOverflow 上发布的问题,例如:Flask - Calling python function on button OnClick event 但他们在这方面并没有真正帮助我。 我真的不知道哪里出了问题,因此我将不胜感激任何见解或帮助。
谢谢!
编辑: 所以看来第一个问题是点击按钮时根本没有调用JS函数...
【问题讨论】:
-
如果您按下按钮(可能插入一个console.log)来查看是否发生这种情况,是否确定调用了 JS-Function。下一篇:flask route 调用了吗?插入打印语句以确保发生这种情况。
-
@MrLeeh JS 函数不会被 bind('click') 调用,但是当你向按钮添加“onclick =”时会调用 .. 但是烧瓶路由永远不会被调用.
标签: javascript python html flask