Bird
Raised Fist0
Flaskframework~30 mins

Accessing form data in Flask - Mini Project: Build & Apply

Choose your learning style10 modes available
Accessing form data in Flask
📖 Scenario: You are building a simple web app using Flask. The app has a form where users enter their name and email. You want to capture this data when the form is submitted.
🎯 Goal: Create a Flask app that shows a form with name and email fields. When the user submits the form, the app should access the form data and store it in variables.
📋 What You'll Learn
Create a Flask app with a route for the form
Add an HTML form with name and email input fields
Use a config variable to set the form submission method
Access the form data using Flask's request.form
Store the submitted name and email in variables
💡 Why This Matters
🌍 Real World
Web apps often need to collect user input through forms, such as sign-up pages or contact forms. Accessing form data is essential to process user input.
💼 Career
Understanding how to handle form data in Flask is a key skill for backend web developers working with Python frameworks.
Progress0 / 4 steps
1
Create the Flask app and form route
Write code to import Flask and request from flask. Create a Flask app called app. Define a route /form that returns a simple HTML form with name and email input fields and a submit button.
Flask
Hint

Remember to import Flask and request. Use @app.route('/form') to create the route. Return a string with the HTML form inside the route function.

2
Set the form submission method
Add a variable called method and set it to the string 'POST'. Then update the HTML form's method attribute to use this variable inside the form route.
Flask
Hint

Create a variable method with value 'POST'. Use an f-string to insert it inside the form's method attribute.

3
Access form data in POST request
Modify the /form route to accept both GET and POST methods. Inside the route, check if the request method is POST. If yes, access the form data using request.form and store the values of name and email in variables called user_name and user_email.
Flask
Hint

Add methods=['GET', 'POST'] to the route decorator. Use if request.method == 'POST': to check the method. Access form data with request.form['name'] and request.form['email'].

4
Complete the route to show submitted data
Update the /form route to return a message showing the submitted user_name and user_email if the request method is POST. Otherwise, return the HTML form. Use an f-string to include the variables in the returned string.
Flask
Hint

Inside the POST check, return a string with the submitted name and email using an f-string. For GET requests, return the form HTML.

Practice

(1/5)
1. In Flask, which object do you use to access data sent from an HTML form using POST method?
easy
A. request.form
B. request.args
C. request.data
D. request.json

Solution

  1. Step 1: Understand form data submission

    When a form is submitted with method POST, data is sent in the request body.
  2. Step 2: Identify Flask object for form data

    Flask provides request.form to access form fields sent via POST.
  3. Final Answer:

    request.form -> Option A
  4. Quick Check:

    Form data = request.form [OK]
Hint: Use request.form to get POST form data in Flask [OK]
Common Mistakes:
  • Using request.args for POST form data
  • Trying to access form data with request.json
  • Using request.data which is raw bytes
2. Which of the following is the correct way to get the value of a form field named username in Flask?
easy
A. request.args['username']
B. request.form['username']
C. request.form.get('username')
D. request.json['username']

Solution

  1. Step 1: Access form field safely

    Using request.form.get('username') safely returns the value or None if missing.
  2. Step 2: Compare other options

    request.form['username'] works but raises error if field missing; C and D are for query params and JSON, not form data.
  3. Final Answer:

    request.form.get('username') -> Option C
  4. Quick Check:

    Safe form access = request.form.get() [OK]
Hint: Use get() to avoid errors if field missing [OK]
Common Mistakes:
  • Using request.args for form POST data
  • Using [] without checking if field exists
  • Trying to get form data from request.json
3. What will be the output of this Flask route when a form with field email is submitted?
from flask import Flask, request
app = Flask(__name__)

@app.route('/submit', methods=['POST'])
def submit():
    email = request.form.get('email')
    return f"Email received: {email}"
medium
A. Email received: None (if form does not send email field)
B. Email received: user@example.com (if form sends email=user@example.com)
C. KeyError exception raised
D. Email received: '' (empty string)

Solution

  1. Step 1: Understand request.form.get behavior

    It returns the value if field exists, else None.
  2. Step 2: Analyze given form submission

    If form sends email=user@example.com, email variable gets that string.
  3. Final Answer:

    Email received: user@example.com (if form sends email=user@example.com) -> Option B
  4. Quick Check:

    request.form.get returns value or None [OK]
Hint: request.form.get returns value or None if missing [OK]
Common Mistakes:
  • Expecting KeyError when using get()
  • Assuming empty string if field missing
  • Confusing request.args with request.form
4. Identify the error in this Flask code snippet that tries to get a form field named age:
from flask import Flask, request
app = Flask(__name__)

@app.route('/age', methods=['POST'])
def age():
    age = request.form['age']
    return f"Age is {age}"
medium
A. Using request.form['age'] can raise KeyError if field missing
B. Missing import of request object
C. Route method should be GET instead of POST
D. Using f-string inside return is invalid

Solution

  1. Step 1: Check how form data is accessed

    Using request.form['age'] raises KeyError if 'age' field is missing.
  2. Step 2: Suggest safer alternative

    Use request.form.get('age') to avoid exceptions if field is missing.
  3. Final Answer:

    Using request.form['age'] can raise KeyError if field missing -> Option A
  4. Quick Check:

    Accessing form with [] risks KeyError [OK]
Hint: Use get() to avoid KeyError on missing form fields [OK]
Common Mistakes:
  • Assuming request.form['age'] never fails
  • Confusing GET and POST methods
  • Thinking f-strings are invalid in return
5. You want to safely get a form field color with a default value blue if the field is missing. Which Flask code snippet correctly does this?
hard
A. color = request.form['color'] or 'blue'
B. color = request.json.get('color', 'blue')
C. color = request.args.get('color', 'blue')
D. color = request.form.get('color', 'blue')

Solution

  1. Step 1: Understand default value usage

    The get() method accepts a second argument as default if key missing.
  2. Step 2: Choose correct data source

    Form data is in request.form, so use request.form.get('color', 'blue').
  3. Final Answer:

    color = request.form.get('color', 'blue') -> Option D
  4. Quick Check:

    Use get(key, default) for safe form access [OK]
Hint: Use get('field', default) to provide fallback value [OK]
Common Mistakes:
  • Using request.args for form POST data
  • Using [] without default causes error
  • Trying to get form data from request.json
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard