📖 Scenario: You are building a simple web application using Flask. To keep your app organized and easy to understand, you need to follow good route naming conventions.Routes are the web addresses that users visit to see different pages or perform actions. Naming them clearly helps both developers and users know what each page does.
🎯 Goal: Create a Flask app with routes that follow clear and consistent naming conventions. You will define routes for a homepage, a user profile page, and a settings page.
📋 What You'll Learn
Create a Flask app instance named app
Define a route for the homepage at / with a function named home
Define a route for the user profile page at /user/profile with a function named user_profile
Define a route for the settings page at /settings with a function named settings
Each route function should return a simple string indicating the page name
💡 Why This Matters
🌍 Real World
Web developers use Flask route naming conventions to organize URLs clearly, making apps easier to maintain and navigate.
💼 Career
Understanding route naming is essential for backend web development roles using Flask or similar frameworks.
Progress0 / 4 steps
1
Create the Flask app instance
Import Flask from flask and create a Flask app instance called app.
Flask
Hint
Use from flask import Flask and then app = Flask(__name__).
2
Define the homepage route
Use the @app.route decorator with the path / to define a function called home that returns the string 'Homepage'.
Flask
Hint
Use @app.route('/') above a function named home that returns 'Homepage'.
3
Add the user profile route
Add a route with @app.route('/user/profile') and define a function called user_profile that returns the string 'User Profile Page'.
Flask
Hint
Use @app.route('/user/profile') and a function named user_profile returning 'User Profile Page'.
4
Add the settings route
Add a route with @app.route('/settings') and define a function called settings that returns the string 'Settings Page'.
Flask
Hint
Use @app.route('/settings') and a function named settings returning 'Settings Page'.
Practice
(1/5)
1. Which of the following is the best practice for naming a Flask route for a user profile page?
easy
A. /user-profile
B. /UserProfile
C. /user_profile
D. /User-Profile
Solution
Step 1: Understand Flask route naming conventions
Flask routes should be lowercase and use hyphens to separate words for readability and consistency.
Step 2: Evaluate each option
/user-profile uses lowercase letters and hyphens, which is the recommended style. Options B and D use uppercase letters, which is not standard. /user_profile uses underscores, which is less preferred than hyphens in URLs.
Final Answer:
/user-profile -> Option A
Quick Check:
Lowercase + hyphens = /user-profile [OK]
Hint: Use lowercase and hyphens for route names [OK]
Common Mistakes:
Using uppercase letters in route names
Using underscores instead of hyphens
Mixing uppercase and lowercase inconsistently
2. Which of the following Flask route definitions is syntactically correct for a dynamic user ID?
easy
A. @app.route('/user/')
B. @app.route('/user/{id}')
C. @app.route('/user/:id')
D. @app.route('/user/')
Solution
Step 1: Recall Flask dynamic route syntax
Flask uses angle brackets with optional type converters like <int:id> to define dynamic parts.
Step 2: Check each option's syntax
@app.route('/user/') correctly uses <int:id>. @app.route('/user/{id}') uses curly braces which is invalid in Flask. @app.route('/user/:id') uses colon syntax from other frameworks, not Flask. @app.route('/user/') reverses type and variable name, which is incorrect.
Final Answer:
@app.route('/user/<int:id>') -> Option A
Quick Check:
Flask dynamic route = <type:variable> [OK]
Hint: Use syntax for dynamic integer routes [OK]
Common Mistakes:
Using curly braces instead of angle brackets
Reversing type and variable name order
Using colon syntax from other frameworks
3. What will be the output when accessing the route /product/42 given this Flask code?
A. Change order_id to orderid in route and function
B. Remove int: and use <order_id> only
C. No fix needed; the code is correct
D. Add a trailing slash to the route like /order/<int:order_id>/
Solution
Step 1: Check route and function parameter consistency
The route uses <int:order_id> and the function parameter is order_id, which matches correctly.
Step 2: Verify Flask route syntax and behavior
The syntax is valid, and Flask accepts routes with or without trailing slashes. No error exists here.
Final Answer:
No fix needed; the code is correct -> Option C
Quick Check:
Matching names and valid syntax = correct code [OK]
Hint: Matching route variables and function params means no fix needed [OK]
Common Mistakes:
Changing variable names unnecessarily
Removing type converters without reason
Thinking trailing slash is mandatory
5. You want to create a Flask route for blog posts with a slug (text) identifier. Which route name follows best practices and correctly captures the slug as a string?
hard
A. @app.route('/blogPost/<slug>')
B. @app.route('/blog_post/')
C. @app.route('/blog-post/<slug>')
D. @app.route('/blog-post/')
Solution
Step 1: Identify route naming conventions
Use lowercase letters and hyphens for route names, so /blog-post/ is preferred over underscores or camelCase.
Step 2: Check dynamic segment syntax
Flask uses <string:slug> to specify a string variable. @app.route('/blog-post/') uses both correct route naming and dynamic segment syntax.
Final Answer:
@app.route('/blog-post/<string:slug>') -> Option D
Quick Check:
Lowercase + hyphen + <string:var> = best practice [OK]
Hint: Use lowercase hyphens and for text routes [OK]
Common Mistakes:
Using underscores or camelCase in route names
Omitting type in dynamic segments
Mixing naming styles inconsistently
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.