Loading

Quipoin Menu

Learn • Practice • Grow

flask / Web Forms
tutorial

Web Forms

Forms are essential for user input – login, registration, search, etc. In Flask, you can handle forms using raw HTML and the `request` object, or with the `Flask-WTF` extension for more features.

Simple Form with Raw HTML

from flask import request

@app.route('/contact', methods=['GET', 'POST'])
def contact():
if request.method == 'POST':
name = request.form['name']
email = request.form['email']
# process data (save to database, send email, etc.)
return f'Thank you, {name}!'
return render_template('contact.html')
The template `contact.html` contains a simple form:





CSRF Protection (Flask‑WTF)

Flask-WTF adds CSRF protection automatically. Install it:
pip install flask-wtf
Set a secret key and create a form class.
from flask_wtf import FlaskForm
from wtforms import StringField SubmitField
from wtforms.validators import DataRequired

app.config['SECRET_KEY'] = 'your-secret-key'

class NameForm(FlaskForm):
name = StringField('Name' validators=[DataRequired()])
submit = SubmitField('Submit')
Use in route and template.

Accessing Form Data in Template (Flask‑WTF)


{{ form.hidden_tag() }}
{{ form.name.label }} {{ form.name() }}
{{ form.submit() }}


Two Minute Drill
  • Forms need `methods=['GET' 'POST']` in the route.
  • Access form data with `request.form['field_name']`.
  • Flask‑WTF adds CSRF protection and simplifies validation.
  • Always set a `SECRET_KEY` for Flask‑WTF.
"

Need more clarification?

Drop us an email at career@quipoinfotech.com