Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Flask Basics Welcome to Flask Multiply View

Change the response to multiply the two arguments and return their product

It keeps telling me that 25 is being returned when they pass in /multiply/2.5/5. I had to set num1 and num2 to default values of 5 for a previous task, but I'm not sure why those values aren't being overrided when the new values are being passed into the URL.

flask_app.py
from flask import Flask

app = Flask(__name__)

@app.route('/multiply')
@app.route('/multiply/<int:num1>/<int:num2>')
@app.route('/multiply/<int:num1>/<float:num2>')
@app.route('/multiply/<float:num1>/<int:num2>')
@app.route('/multiply/<float:num1>/<float:num2>')
def multiply(num1=5, num2=5):
    multiply = 5*5
    return str(multiply)
    return "{} * {} = {}".format(num1, num2, num1*num2)
    return "{}".format(num1*num2)

1 Answer

Wade Williams
Wade Williams
24,476 Points

You have multiple return statements and you're always returning the variable multiply first which is 5 * 5. You need to change this line to multiply the function variables and you can remove the other return statements.

multiply = num1 * num2
return str(multiply)