我有一张类似
的表格<form action="{{ url_for('my_form')}}" method="get">
<h2><td><input type="hidden" name="user_name" value="{{ user_name }}">{{ user_name }}</td></h2><br>
<button type="submit" class="btn btn-primary btn-lg" value="Submit">Submit</button>
</form>
然后在烧瓶后端
@app.route('/my_form', methods=['GET'])
def my_form():
print request.form.items()
user_name = request.form['user_name']
print "exclusive request"
print "got user name ", user_name
但是当提交查询变为时,这不起作用 http://local_host/my_form?user_name=foobar&lt; --- 400错误
这有意义..因为查询网址是my_form
那么,问题是如何在烧瓶中制作一个表格?
答案 0 :(得分:1)
根据flask documentation我们使用 POST 方法或 PUT 请求的表单属性,因为您正在使用 GET 尝试 args 参数:
使用来自POST或PUT请求的已解析表单数据形成MultiDict。 请记住,文件上传不会在这里结束,但是 而是在files属性中。
args具有查询字符串的已解析内容的MultiDict。 (该 部分在问号后的URL中。
在你的后端使用它:
@app.route('/my_form', methods=['GET'])
def my_form():
print request.args.items()
user_name = request.args['user_name']
print "exclusive request"
print "got user name ", user_name
答案 1 :(得分:1)
您尝试访问POST请求参数,但您的路由仅接受GET请求。要解决此问题,只需在路径修饰器的方法参数中添加POST。
@app.route('/my_form', methods=['GET', 'POST'])
def my_form():
print request.args.items()
user_name = request.form.get('user_name')
print "exclusive request"
print "got user name ", user_name