flask表单提交时遇到的问题-bad request(400)

2019-05-28  本文已影响0人  裂开的汤圆

首先我们看看这个错误长什么样子

这里写图片描述

让我们看看源代码

前端:
<form method="post" action="login"> 
    姓名:<input type="text" id="name" ><br> 
    密码:<input type="password" id="password" ><br> 
    <input type="submit" value="提交"> 
</form>

后端:

/# flask获取request的值,需要导入下面这个包 
from flask import request 

@app.route('/login', methods=['get', 'post']) 
def login(): 
    if request.method == 'POST': 
        name = request.form['name'] 
        password = request.form['password'] 
    return render_template('index.html', name=name, password=password)

原因

debug的时候,发现程序执行到request.form[‘name’];这一步的时候就报错了,一开始以为是文档太久的问题,但是去看了最新的flask文档,获取表单值的方法没错。然后想了下,可能和请求过来的表单值有关。上网找了下资料才知道,原来form表单,会将它的输入框中的值,绑定到’name’属性中,后端取值的时候也是根据‘name’属性的值去取值,而不是根据到id,所以将前端代码的input标签中添加一个name属性就可以了,代码如下:

<form method="post" action="login"> 
    姓名:<input type="text" id="name" name="name"><br> 
    密码:<input type="password" id="password" name="password"><br> 
    <input type="submit" value="提交"> 
</form>
上一篇 下一篇

猜你喜欢

热点阅读