首先我们看看这个错误长什么样子
让我们看看源代码
前端:
<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>
网友评论