如何在烧瓶中制作一个形状

时间:2017-11-17 08:52:19

标签: flask

我有一张类似

的表格
<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 那么,问题是如何在烧瓶中制作一个表格?

2 个答案:

答案 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