【问题标题】:400 Bad Request: The browser (or proxy) sent a request that this server could not understand. KeyError: 'nameSearch'400 Bad Request:浏览器(或代理)发送了一个服务器无法理解的请求。 KeyError:“名称搜索”
【发布时间】:2021-06-04 22:33:12
【问题描述】:

我已经检查了一切,我一直收到这个错误,我不知道是什么问题

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

    <h2>
        {{ oneItem.name }}
    </h2>
</body>
    @app.route('/findafriend', methods=['POST', 'GET'])
def findFriend():
    if request.method == "POST":
    
    
    
    
        return redirect('/findafriend')
    else:
        findFriend = request.form["nameSearch"]
    
        oneItem = Friends.query.filter_by(findFriend).all 
        return render_template('findafriend.html', oneItem=oneItem, foundFriend=foundFriend, 
findFriend=findFriend)

如你所见

findFriend = request.form["nameSearch"]

应该可以工作,因为“nameSearch”是 html 表单中的 smae

但我很确定 python 代码的另一部分有问题,但我不确定是什么,因为我是新手

【问题讨论】:

    标签: python html forms flask web


    【解决方案1】:

    我猜,你应该在 POST-request 中得到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: local variable 'oneItem' referenced before assignment”
    • @Lirian 然后,将变量 oneItem 设为全局变量,在函数顶部添加 global oneItem
    猜你喜欢
    • 2021-02-19
    • 2020-10-17
    • 2020-03-19
    • 2020-06-11
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2018-12-20
    • 2018-04-27
    相关资源
    最近更新 更多