Bird
Raised Fist0
Flaskframework~10 mins

Trailing slash behavior in Flask - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a Flask route that responds to '/home/' with a trailing slash.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/home[1]')
def home():
    return 'Welcome Home!'
Drag options to blanks, or click blank then click option'
A/
C//
Dhome/
Attempts:
3 left
💡 Hint
Common Mistakes
Leaving out the slash causes Flask to redirect automatically, which might confuse beginners.
2fill in blank
medium

Complete the code to define a Flask route that responds to '/about' without a trailing slash.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/about[1]')
def about():
    return 'About Page'
Drag options to blanks, or click blank then click option'
A/
C//
Dabout/
Attempts:
3 left
💡 Hint
Common Mistakes
Adding a slash causes Flask to redirect '/about' to '/about/' which is not intended here.
3fill in blank
hard

Fix the error in the route decorator to correctly handle the URL '/contact/' with a trailing slash.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/contact[1]')
def contact():
    return 'Contact Us'
Drag options to blanks, or click blank then click option'
B/contact/
C/
D//
Attempts:
3 left
💡 Hint
Common Mistakes
Using double slashes or repeating the route name inside the decorator.
4fill in blank
hard

Complete the code to create a Flask route that accepts '/profile' without a slash and '/profile/' with a slash, redirecting the slash version to the no-slash version.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/profile', strict_slashes=[1])
def profile():
    return 'User Profile'
Drag options to blanks, or click blank then click option'
B/
CTrue
DFalse
Attempts:
3 left
💡 Hint
Common Mistakes
Adding a slash in the route string or setting strict_slashes=False disables the redirect behavior.
5fill in blank
hard

Fill all three blanks to define a Flask route that accepts '/dashboard/' with a trailing slash and disables automatic redirect for missing slash URLs.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/dashboard[1]', strict_slashes=[2])
def dashboard():
    return 'Dashboard Page'

# Accessing '/dashboard' will [3] redirect to '/dashboard/'
Drag options to blanks, or click blank then click option'
A/
BTrue
Cnot trigger
DFalse
Attempts:
3 left
💡 Hint
Common Mistakes
Setting strict_slashes=True causes Flask to redirect automatically.

Practice

(1/5)
1. In Flask, what happens if you define a route with a trailing slash like @app.route('/home/') and a user visits /home without the slash?
easy
A. Flask returns a 404 Not Found error.
B. Flask serves the /home route without redirecting.
C. Flask redirects the user to /home/ automatically.
D. Flask throws a server error.

Solution

  1. Step 1: Understand trailing slash behavior in Flask routes

    Routes defined with a trailing slash expect URLs to end with a slash.
  2. Step 2: Check Flask's automatic redirect behavior

    If a user visits the URL without the trailing slash, Flask automatically redirects to the URL with the slash.
  3. Final Answer:

    Flask redirects the user to /home/ automatically. -> Option C
  4. Quick Check:

    Trailing slash route redirects missing slash URL [OK]
Hint: Trailing slash routes redirect missing slash URLs [OK]
Common Mistakes:
  • Thinking Flask serves both URLs without redirect
  • Assuming 404 error occurs without slash
  • Believing Flask throws server error
2. Which of the following is the correct syntax to define a Flask route that does NOT accept a trailing slash?
easy
A. @app.route('/about/')
B. @app.route('/about//')
C. @app.route('about/')
D. @app.route('/about')

Solution

  1. Step 1: Identify correct route syntax without trailing slash

    To define a route that does not accept a trailing slash, the route string should not end with a slash.
  2. Step 2: Check each option

    @app.route('/about') uses '/about' without a trailing slash, which is correct syntax.
  3. Final Answer:

    @app.route('/about') -> Option D
  4. Quick Check:

    Route without trailing slash = no slash in route string [OK]
Hint: No trailing slash means route string ends without slash [OK]
Common Mistakes:
  • Adding extra slashes in route string
  • Omitting leading slash in route
  • Confusing trailing slash with double slashes
3. Given this Flask code:
@app.route('/page/')
def page():
    return 'Page with slash'

What will happen if a user visits /page in their browser?
medium
A. The user sees 'Page with slash' without URL change.
B. The user is redirected to /page/ and sees 'Page with slash'.
C. The user gets a 404 Not Found error.
D. The server crashes with an error.

Solution

  1. Step 1: Analyze route definition with trailing slash

    The route '/page/' expects URLs ending with a slash.
  2. Step 2: Understand Flask's redirect behavior

    If the user visits '/page' without the slash, Flask redirects to '/page/' automatically and serves the response.
  3. Final Answer:

    The user is redirected to /page/ and sees 'Page with slash'. -> Option B
  4. Quick Check:

    Trailing slash route redirects missing slash URL [OK]
Hint: Trailing slash route redirects missing slash URL [OK]
Common Mistakes:
  • Assuming no redirect happens
  • Expecting 404 error on missing slash
  • Thinking server crashes on missing slash
4. Consider this Flask code:
@app.route('/contact')
def contact():
    return 'Contact page'

What happens if a user visits /contact/ with a trailing slash?
medium
A. Flask returns a 404 Not Found error.
B. Flask throws a server error.
C. Flask serves the page normally.
D. Flask redirects to /contact without slash.

Solution

  1. Step 1: Identify route without trailing slash

    The route '/contact' is defined without a trailing slash.
  2. Step 2: Check Flask behavior on extra trailing slash

    Flask does NOT redirect URLs with an extra trailing slash to the no-slash route; it returns a 404 error.
  3. Final Answer:

    Flask returns a 404 Not Found error. -> Option A
  4. Quick Check:

    No trailing slash route rejects extra slash URL [OK]
Hint: No trailing slash route rejects URLs with slash [OK]
Common Mistakes:
  • Thinking Flask redirects to no-slash URL
  • Assuming page loads normally with slash
  • Believing server throws error instead of 404
5. You want a single Flask route to accept both /blog and /blog/ URLs without redirecting or 404 errors. Which approach achieves this?
hard
A. Use Flask's strict_slashes=False option on the route decorator.
B. Define one route with trailing slash: @app.route('/blog/') only.
C. Define one route without trailing slash: @app.route('/blog') only.
D. Define two routes: @app.route('/blog') and @app.route('/blog/') pointing to the same function.

Solution

  1. Step 1: Understand default Flask behavior

    By default, Flask treats routes with and without trailing slash differently, redirecting or 404ing as needed.
  2. Step 2: Use strict_slashes=False to accept both

    Setting strict_slashes=False on the route decorator disables strict trailing slash matching, allowing both URLs without redirect or error.
  3. Final Answer:

    Use Flask's strict_slashes=False option on the route decorator. -> Option A
  4. Quick Check:

    strict_slashes=False allows both URLs [OK]
Hint: Use strict_slashes=False to accept both slash and no-slash URLs [OK]
Common Mistakes:
  • Defining two routes duplicates code
  • Relying on default redirect behavior
  • Ignoring strict_slashes option
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