首页 > 解决方案 > 将字符串从 html 表单返回到烧瓶

问题描述

这个问题是很常见的问题,但很长一段时间都无法解决它......如果你能弄清楚我哪里出错了,请帮忙

我有一个返回这样的字符串的表单:

<form id="details" name="details" method="post">
    <input class="myButton" style="margin-top:300px; margin-left:320px; text-align: center;" type="submit" value="Save" onclick="return getstring()">
    </input>
</form>

<script>
function getstring() {
                ....
                ....
                return "abcd";
                }
</script>

现在,在我的烧瓶代码中:

def process_details():
    if request.method == 'GET':
        return render_template('page1.html')
    else:
        returned_details = request.form['details']
        print(returned_details)

但是当我调试这个时,在“POST”请求期间,它正确地进入了 process_details 函数,但它不能填充返回的_details 变量。返回字符串不是字典,知道在这种情况下如何返回烧瓶吗?

换句话说,我只需要一个表单内的按钮,该按钮从页面收集数据并在按下时提交(我在 onClick 上获取该数据)。在烧瓶部分,当我做 request.form['details'] 时,我应该得到那个值。

谢谢

标签: javascriptpythonhtmlflask

解决方案


我认为问题出在 html 页面中的表单中。当我们发出 POST 请求时,您想运行代码的 else 部分,但在提交后没有表单将我们发送到该代码。所以简而言之,将其添加到您的表单中;

<form action="{{ url_for ('process_details') }}">...</form>

推荐阅读