Python 400错误请求:浏览器(或代理)发送了此服务器无法理解的请求。KeyError:';名称搜索&x27;

Python 400错误请求:浏览器(或代理)发送了此服务器无法理解的请求。KeyError:';名称搜索&x27;,python,html,forms,flask,web,Python,Html,Forms,Flask,Web,我已经检查了所有的东西,我不断地发现这个错误,我不知道出了什么问题 <form action="/findafriend" method="POST"> <input type="text" name="nameSearch"> <input type="submit" value="Search"> </form>

我已经检查了所有的东西,我不断地发现这个错误,我不知道出了什么问题

<form action="/findafriend" method="POST">
    <input type="text" name="nameSearch">
    <input type="submit" value="Search">
</form>

    <h2>
        {{ oneItem.name }}
    </h2>
</body>
如你所见

findFriend = request.form["nameSearch"]
应该可以工作,因为“nameSearch”是html表单中的smae


但是我很确定python代码的另一部分有问题,但我不确定是什么,因为我是一个新手,我想,你应该在POST请求中获得
nameSearch
,因为你表单的请求方法是
POST

尝试这样更改python代码:

if request.method == "POST":
    findFriend = request.form["nameSearch"]
    oneItem = Friends.query.filter_by(findFriend).all()
    return redirect('/findafriend')
else:
    return render_template('findafriend.html', oneItem=oneItem, foundFriend=foundFriend, findFriend=findFriend)

现在我得到了这个“UnboundLocalError:赋值前引用的局部变量'oneItem'”@Lirian然后,将变量
oneItem
global,在函数顶部添加
global oneItem
if request.method == "POST":
    findFriend = request.form["nameSearch"]
    oneItem = Friends.query.filter_by(findFriend).all()
    return redirect('/findafriend')
else:
    return render_template('findafriend.html', oneItem=oneItem, foundFriend=foundFriend, findFriend=findFriend)