Bird
Raised Fist0
Flaskframework~5 mins

Route decorator (@app.route) in Flask

Choose your learning style10 modes available
Introduction

The route decorator connects a web address to a function in your Flask app. It tells the app what to do when someone visits a specific URL.

When you want to show a homepage at '/'
When you want to create a page for '/about' or '/contact'
When you want to handle form submissions at a specific URL
When you want to build an API endpoint that responds to a URL
When you want to organize different pages or actions in your web app
Syntax
Flask
@app.route('/path')
def function_name():
    return 'response'
The string inside @app.route() is the URL path you want to match.
The function below the decorator runs when that URL is visited.
Examples
This sets the homepage at the root URL '/' to show a welcome message.
Flask
@app.route('/')
def home():
    return 'Welcome to the homepage!'
This creates an '/about' page that shows some text.
Flask
@app.route('/about')
def about():
    return 'About us page'
This uses a variable part in the URL to show a user name dynamically.
Flask
@app.route('/user/<username>')
def show_user(username):
    return f'User: {username}'
Sample Program

This Flask app has two routes: the homepage at '/' and a greeting page at '/greet/<name>'. Visiting '/greet/Alice' will show 'Hello, Alice!'.

Flask
from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, this is the homepage!'

@app.route('/greet/<name>')
def greet(name):
    return f'Hello, {name}!'

if __name__ == '__main__':
    app.run(debug=True)
OutputSuccess
Important Notes

Use @app.route() to connect URLs to functions easily.

Variable parts in URLs use <> brackets, like <username>.

Flask matches routes in the order they are defined, so be careful with overlapping paths.

Summary

@app.route links a URL path to a function in Flask.

It helps your app respond to different web addresses.

You can use fixed or variable URL parts with it.

Practice

(1/5)
1. What does the @app.route decorator do in a Flask application?
easy
A. It connects a URL path to a specific function that runs when that URL is visited.
B. It creates a database connection for the app.
C. It styles the HTML pages served by Flask.
D. It starts the Flask server automatically.

Solution

  1. Step 1: Understand the role of @app.route

    The decorator @app.route is used to link a URL path to a function in Flask.
  2. Step 2: Identify what happens when the URL is visited

    When a user visits that URL, Flask runs the linked function to generate a response.
  3. Final Answer:

    It connects a URL path to a specific function that runs when that URL is visited. -> Option A
  4. Quick Check:

    @app.route links URL to function [OK]
Hint: Remember: @app.route maps URLs to functions [OK]
Common Mistakes:
  • Thinking @app.route starts the server
  • Confusing it with database setup
  • Assuming it styles pages
2. Which of the following is the correct syntax to create a route for the URL path /home in Flask?
easy
A. @app.route('/home')\ndef home():\n return 'Welcome!'
B. app.route('/home')\ndef home():\n return 'Welcome!'
C. @app.route('/home')\nreturn 'Welcome!'
D. @app.route('/home')\ndef home:\n return 'Welcome!'

Solution

  1. Step 1: Check the decorator syntax

    The correct decorator syntax uses @app.route('/home') placed immediately before a function definition.
  2. Step 2: Verify the function definition and return statement

    The function must be defined with parentheses and a colon, and it returns a string response.
  3. Final Answer:

    @app.route('/home')\ndef home():\n return 'Welcome!' -> Option A
  4. Quick Check:

    Decorator + function with parentheses = correct syntax [OK]
Hint: Decorator needs @ and function needs () and : [OK]
Common Mistakes:
  • Missing @ before app.route
  • Omitting parentheses in function definition
  • Placing return outside function
3. What will be the output when visiting the URL /user/42 given this Flask code?
@app.route('/user/<int:id>')
def show_user(id):
    return f"User ID is {id}"
medium
A. User ID is <int:id>
B. User ID is 42
C. 404 Not Found error
D. User ID is id

Solution

  1. Step 1: Understand the route with variable part

    The route /user/<int:id> captures an integer from the URL and passes it as the argument id to the function.
  2. Step 2: Check the function output

    The function returns a string with the captured id value inserted using an f-string.
  3. Final Answer:

    User ID is 42 -> Option B
  4. Quick Check:

    Variable URL part passes 42 to function [OK]
Hint: Variable parts in < > pass values to function [OK]
Common Mistakes:
  • Thinking is printed literally
  • Expecting a 404 error without reason
  • Confusing variable name with string
4. Identify the error in this Flask route code:
@app.route('/hello')
def hello():
print('Hello World')
return 'Hello!'
medium
A. The return statement is outside the function.
B. The route decorator is missing parentheses.
C. The function name is invalid.
D. The function body is not indented properly.

Solution

  1. Step 1: Check indentation inside the function

    Python requires the function body to be indented. Here, print and return are not indented under def hello():.
  2. Step 2: Verify decorator and function syntax

    The decorator has correct parentheses and the function name is valid, so no errors there.
  3. Final Answer:

    The function body is not indented properly. -> Option D
  4. Quick Check:

    Python needs indented function bodies [OK]
Hint: Indent function code under def line [OK]
Common Mistakes:
  • Forgetting to indent function body
  • Removing parentheses from decorator
  • Misnaming the function
5. You want to create a Flask route that accepts a username in the URL like /profile/john and returns Hello, john!. Which code correctly achieves this?
hard
A. @app.route('/profile/<username>')\ndef profile():\n return f'Hello, {username}!'
B. @app.route('/profile/')\ndef profile(username):\n return f'Hello, {username}!'
C. @app.route('/profile/<username>')\ndef profile(username):\n return f'Hello, {username}!'
D. @app.route('/profile/username')\ndef profile():\n return 'Hello, username!'

Solution

  1. Step 1: Use variable URL part for username

    The route must capture username as a string variable using <username> in the URL.
  2. Step 2: Define function with matching parameter and return greeting

    The function must accept username as a parameter and return the greeting using an f-string.
  3. Final Answer:

    @app.route('/profile/<username>')\ndef profile(username):\n return f'Hello, {username}!' -> Option C
  4. Quick Check:

    Variable URL + matching param + f-string = correct [OK]
Hint: Match variable name in route and function parameter [OK]
Common Mistakes:
  • Using for a string username
  • Not passing username parameter to function
  • Hardcoding username in route path
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