2
@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([])

なぜデータが欠落しているのですか?

4

1 に答える 1

8

フィールド名がありません (これは のキーです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">
于 2013-04-23T04:47:13.390 に答える