Flask没有收到HTML POST的数据

时间:2013-04-23 04:38:51

标签: python flask

@app.route('/', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        if 'USER_TOKEN' in session:
            return make_response(render_template('index.html'))
        return make_response(render_template('login.html'))
    if request.method == 'POST':
        print 'data :', request.form
        return make_response(render_template('index.html'))

我的HTML

  <form class="form-horizontal" action="/" method="POST">
    <div class="control-group">
      <label class="control-label" for="email">Email</label>
      <div class="controls">
        <input type="text" id="email" placeholder="Email">
      </div>
    </div>
    <div class="control-group">
      <label class="control-label" for="password">Password</label>
      <div class="controls">
        <input type="password" id="password" placeholder="Password">
      </div>
    </div>
    <div class="control-group">
      <div class="controls">
        <button type="submit" class="btn">Sign In</button>
      </div>
    </div>
  </form>

当我从HTML页面提交数据时,我看到了

data : ImmutableMultiDict([])

为什么缺少数据?

1 个答案:

答案 0 :(得分:6)

您缺少字段名称(ImmutableMultiDict的键,这就是提交表单时似乎为空的原因)。

变化

<input type="text" id="email" placeholder="Email">

<input name="<whatever_email_name>" type="text" id="email" placeholder="Email">

<input type="password" id="password" placeholder="Password">

<input name="<whatever_password_name>" type="password" id="password" placeholder="Password">