Bird
Raised Fist0
Flaskframework~10 mins

Parameter type converters (int, float, path) 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 route that accepts an integer parameter named <user_id>.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/user/[1]')
def show_user(user_id):
    return f"User ID is {user_id}"
Drag options to blanks, or click blank then click option'
A<int:user_id>
B<string:user_id>
C<float:user_id>
D<path:user_id>
Attempts:
3 left
💡 Hint
Common Mistakes
Using will treat the parameter as text, not an integer.
Forgetting the converter and just using treats it as a string.
2fill in blank
medium

Complete the code to define a route that accepts a floating-point number parameter named <price>.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/price/[1]')
def show_price(price):
    return f"Price is {price}"
Drag options to blanks, or click blank then click option'
A<path:price>
B<int:price>
C<float:price>
D<string:price>
Attempts:
3 left
💡 Hint
Common Mistakes
Using will cause errors if the URL has decimals.
Using treats the parameter as text.
3fill in blank
hard

Fix the error in the route to accept a file path parameter named <filepath> that can include slashes.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/files/[1]')
def show_file(filepath):
    return f"File path is {filepath}"
Drag options to blanks, or click blank then click option'
A<path:filepath>
B<int:filepath>
C<string:filepath>
D<float:filepath>
Attempts:
3 left
💡 Hint
Common Mistakes
Using stops at the first slash, so the path is incomplete.
Using or causes type errors.
4fill in blank
hard

Fill both blanks to create a route that accepts an integer <post_id> and a path <filename>.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/post/[1]/file/[2]')
def show_post_file(post_id, filename):
    return f"Post {post_id}, File {filename}"
Drag options to blanks, or click blank then click option'
A<int:post_id>
B<string:filename>
C<path:filename>
D<float:post_id>
Attempts:
3 left
💡 Hint
Common Mistakes
Using will not capture slashes in the filename.
Using is incorrect if the ID is an integer.
5fill in blank
hard

Fill all three blanks to create a route that accepts a float <rating>, an int <item_id>, and a path <image_path>.

Flask
from flask import Flask
app = Flask(__name__)

@app.route('/rate/[1]/item/[2]/image/[3]')
def show_rating(rating, item_id, image_path):
    return f"Rating: {rating}, Item: {item_id}, Image: {image_path}"
Drag options to blanks, or click blank then click option'
A<string:image_path>
B<int:item_id>
C<path:image_path>
D<float:rating>
Attempts:
3 left
💡 Hint
Common Mistakes
Using will not capture slashes.
Mixing up the order of converters causes errors.

Practice

(1/5)
1. What does the int converter do in a Flask route parameter like <int:id>?
easy
A. It matches any text including slashes.
B. It ensures the parameter is an integer and converts it automatically.
C. It converts the parameter to a string.
D. It converts the parameter to a floating-point number.

Solution

  1. Step 1: Understand the role of int converter

    The int converter tells Flask to accept only integer values for that URL part.
  2. Step 2: Check what happens with the parameter

    Flask automatically converts the matched URL part to an integer type before passing it to the view function.
  3. Final Answer:

    It ensures the parameter is an integer and converts it automatically. -> Option B
  4. Quick Check:

    int converter = integer parameter [OK]
Hint: int converter means only whole numbers allowed [OK]
Common Mistakes:
  • Thinking int converts to string
  • Confusing int with float converter
  • Assuming int matches any text
2. Which of the following is the correct syntax to define a Flask route that accepts a floating-point number parameter named price?
easy
A. @app.route('/item/<path:price>')
B. @app.route('/item/<int:price>')
C. @app.route('/item/<float:price>')
D. @app.route('/item/<str:price>')

Solution

  1. Step 1: Identify the correct converter for floating-point numbers

    The float converter is used to accept decimal numbers in the URL.
  2. Step 2: Match the syntax for route parameter

    The correct syntax is <float:price> inside the route decorator.
  3. Final Answer:

    @app.route('/item/<float:price>') -> Option C
  4. Quick Check:

    float converter = decimal number parameter [OK]
Hint: Use for decimal numbers in route parameters [OK]
Common Mistakes:
  • Using int instead of float for decimals
  • Using str which is not a Flask converter
  • Using path which allows slashes, not numbers
3. Given this Flask route:
@app.route('/files/<path:filename>')
def show_file(filename):
    return f"File requested: {filename}"

What will be the output if the URL is /files/docs/manual.pdf?
medium
A. File requested: docs/manual.pdf
B. File requested: manual.pdf
C. 404 Not Found error
D. File requested: docs

Solution

  1. Step 1: Understand the path converter behavior

    The path converter matches the entire remaining path including slashes.
  2. Step 2: Analyze the URL and parameter value

    The URL /files/docs/manual.pdf matches filename as docs/manual.pdf.
  3. Final Answer:

    File requested: docs/manual.pdf -> Option A
  4. Quick Check:

    path converter = matches full path with slashes [OK]
Hint: path converter captures slashes in URL parts [OK]
Common Mistakes:
  • Assuming path stops at first slash
  • Expecting 404 error for slashes in parameter
  • Confusing path with string converter
4. What is wrong with this Flask route definition?
@app.route('/product/<int:product_id>/<float:price>')
def show_product(product_id, price):
    return f"Product {product_id} costs {price}"

When accessing /product/abc/19.99, what error occurs?
medium
A. ValueError because 'abc' is not an integer
B. TypeError because price is not a float
C. No error, it works fine
D. 404 Not Found error due to URL mismatch

Solution

  1. Step 1: Check the int converter requirement

    The first parameter expects an integer, but 'abc' is not an integer.
  2. Step 2: Understand Flask routing behavior on type mismatch

    Flask does not raise ValueError but returns 404 Not Found if the URL does not match the route pattern.
  3. Final Answer:

    404 Not Found error due to URL mismatch -> Option D
  4. Quick Check:

    Type mismatch in route = 404 error [OK]
Hint: Wrong type in URL parameter causes 404, not exception [OK]
Common Mistakes:
  • Expecting Python exceptions instead of 404
  • Confusing ValueError with Flask routing errors
  • Assuming route matches any string
5. You want to create a Flask route that accepts a file path parameter which may include slashes, and an integer version number after it, like /download/docs/manual/2. Which route definition correctly uses converters to achieve this?
hard
A. @app.route('/download/<path:filepath>/<int:version>')
B. @app.route('/download/<int:version>/<path:filepath>')
C. @app.route('/download/<path:filepath><int:version>')
D. @app.route('/download/<path:filepath>/<float:version>')

Solution

  1. Step 1: Identify the order of parameters in the URL

    The URL pattern is /download/ followed by a path (which may include slashes), then a slash, then an integer version.
  2. Step 2: Use path for filepath and int for version in correct order

    The route must be /download/<path:filepath>/<int:version> to match the URL structure.
  3. Final Answer:

    @app.route('/download/<path:filepath>/<int:version>') -> Option A
  4. Quick Check:

    path then int in route matches URL structure [OK]
Hint: Use path converter before int for multi-part paths [OK]
Common Mistakes:
  • Swapping parameter order
  • Missing slash between parameters
  • Using float instead of int for version
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