This Flask app shows three routes following naming conventions: the homepage '/', a hyphenated multi-word route '/contact-us', and a dynamic route with a variable '/product/<int:product_id>'.
Flask
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return'Welcome to the Home Page'
@app.route('/contact-us')
def contact():
return'Contact Us Here'
@app.route('/product/<int:product_id>')
def product_detail(product_id):
return f'Product Details for product {product_id}'if __name__ == '__main__':
app.run(debug=True)
OutputSuccess
Important Notes
Always use lowercase letters in route names to avoid confusion.
Use hyphens (-) instead of underscores (_) in URLs for better readability.
Keep routes simple and meaningful to help users and search engines.
Summary
Use clear, lowercase, hyphen-separated names for routes.
Dynamic parts of routes use <variable> syntax in Flask.
Consistent route naming makes your app easier to use and maintain.
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.