librelist archives

« back to archive

Why bad request?

Why bad request?

From:
Alex
Date:
2011-05-27 @ 09:03
The form is:
    <form action="{{ url_for('receivers') }}" method=POST>
        <fieldset>
            <label for=mail>Mail</label>
            <input type=text name=mail class=":required :email">
        </fieldset>
        <fieldset>
            <label for=phone>Phone Number</label>
            <input type=text name=Phone class=":required :number">
        </fieldset>
        <input type=submit value=Submit class=submit>
    </form>

the def is
@frontend.route('/receivers/', methods=['POST', 'GET'])
def receivers():
    current_page('receivers')
    if request.method == 'POST':
        g.db.execute('insert into receivers (mail, phone) values (?, ?)',
                    (request.form['mail'], request.form['phone']))
        g.db.commit()

    cur = g.db.execute('select * from receivers')
    receivers = (dict(id=row[0], mail=row[1], phone=row[2]) for row in
cur.fetchall())

    return render_template('list.html', receivers=receivers)

When i submit the form, i got a bad request.
The error message is

The browser (or proxy) sent a request that this server could not understand.

Anyone can help me.

Thanks in advance.

Re: [flask] Why bad request?

From:
Julen Ruiz Aizpuru
Date:
2011-05-27 @ 09:12
or., 2011.eko mairen 27a 11:03(e)an, Alex(e)k idatzi zuen:
> The form is:
> <form action="{{ url_for('receivers') }}" method=POST>
> <fieldset>
> <label for=mail>Mail</label>
> <input type=text name=mail class=":required :email">
> </fieldset>
> <fieldset>
> <label for=phone>Phone Number</label>
> <input type=text name=Phone class=":required :number">
> </fieldset>
> <input type=submit value=Submit class=submit>
> </form>
>
> the def is
> @frontend.route('/receivers/', methods=['POST', 'GET'])
> def receivers():
>      current_page('receivers')
>      if request.method == 'POST':
>          g.db.execute('insert into receivers (mail, phone) values (?, ?)',
>                      (request.form['mail'], request.form['phone']))
>          g.db.commit()
>
>      cur = g.db.execute('select * from receivers')
>      receivers = (dict(id=row[0], mail=row[1], phone=row[2]) for row in
> cur.fetchall())
>
>      return render_template('list.html', receivers=receivers)
>
> When i submit the form, i got a bad request.
> The error message is
>
> The browser (or proxy) sent a request that this server could not understand.
>
> Anyone can help me.
>

Make sure request.form['mail'] and request.form['phone'] have actual 
values. One of your inputs has 'Phone' as a name.

Re: [flask] Why bad request?

From:
Alex
Date:
2011-05-27 @ 09:57
Thank you Julen Ruiz Aizpuru.
I change it to 'phone'. And it works now.

2011/5/27 Julen Ruiz Aizpuru <julenx@gmail.com>

> or., 2011.eko mairen 27a 11:03(e)an, Alex(e)k idatzi zuen:
> > The form is:
> > <form action="{{ url_for('receivers') }}" method=POST>
> > <fieldset>
> > <label for=mail>Mail</label>
> > <input type=text name=mail class=":required :email">
> > </fieldset>
> > <fieldset>
> > <label for=phone>Phone Number</label>
> > <input type=text name=Phone class=":required :number">
> > </fieldset>
> > <input type=submit value=Submit class=submit>
> > </form>
> >
> > the def is
> > @frontend.route('/receivers/', methods=['POST', 'GET'])
> > def receivers():
> >      current_page('receivers')
> >      if request.method == 'POST':
> >          g.db.execute('insert into receivers (mail, phone) values (?,
> ?)',
> >                      (request.form['mail'], request.form['phone']))
> >          g.db.commit()
> >
> >      cur = g.db.execute('select * from receivers')
> >      receivers = (dict(id=row[0], mail=row[1], phone=row[2]) for row in
> > cur.fetchall())
> >
> >      return render_template('list.html', receivers=receivers)
> >
> > When i submit the form, i got a bad request.
> > The error message is
> >
> > The browser (or proxy) sent a request that this server could not
> understand.
> >
> > Anyone can help me.
> >
>
> Make sure request.form['mail'] and request.form['phone'] have actual
> values. One of your inputs has 'Phone' as a name.
>