Flask中request.form无法获取表单数据的问题求助
Flask表单无法获取数据的解决方案
问题原因
你提供的index.html代码中,表单action属性里的url_for存在语法错误:
<form action="{{ url_for('receive_data'}}">
这里url_for('receive_data'}}的括号闭合顺序错误,正确写法应为url_for('receive_data'),错误格式导致表单提交的目标地址无效,后端无法接收到表单数据。
修正后的代码
server.py(确认已导入request即可,无需其他修改)
from flask import Flask, request app = Flask(__name__) @app.route('/login', methods=['POST']) def receive_data(): user = request.form['username'] password = request.form['password'] return f'<h1>name:{user} password:{password}</h1>' if __name__ == '__main__': app.run(debug=True)
修正后的index.html
<form action="{{ url_for('receive_data') }}" method="POST"> <label>Name</label> <input type="text" placeholder="name" name="username"> <label>Password</label> <input type="text" placeholder="password" name="password"> <button type="submit">Ok</button> </form>
验证说明
修正后,表单会正确指向receive_data视图函数对应的路由,提交表单后后端就能通过request.form['username']或request.form.get('username')正常获取到表单数据,之前get方法返回None的问题也会同步解决。
内容的提问来源于stack exchange,提问作者Emir Skopljak
相关产品推荐
相关产品推荐

