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-wtfSet 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)
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
