Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Flask App Routing

  • Last Updated : 27 Oct, 2021

App Routing means mapping the URLs to a specific function that will handle the logic for that URL. Modern web frameworks use more meaningful URLs to help users remember the URLs and make navigation simpler. 

Example: In our application, the URL (“/”) is associated with the root URL. So if our site’s domain was www.example.org and we want to add routing to “www.example.org/hello”, we would use “/hello”. 

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

To bind a function to an URL path we use the app.route decorator. In the below example, we have implemented the above routing in the flask.



main.py




from flask import Flask
  
app = Flask(__name__)
  
# Pass the required route to the decorator.
@app.route("/hello")
def hello():
    return "Hello, Welcome to GeeksForGeeks"
    
@app.route("/")
def index():
    return "Homepage of GeeksForGeeks"
  
if __name__ == "__main__":
    app.run(debug=True)

The hello function is now mapped with the “/hello” path and we get the output of the function rendered on the browser.

Step to run the application: Run the application using the following command.

python main.py

Output: Open the browser and visit 127.0.0.1:5000/hello, you will see the following output.

Dynamic URLs – We can also build dynamic URLs by using variables in the URL. To add variables to URLs, use <variable_name> rule. The function then receives the <variable_name> as keyword argument.

Example: Consider the following example to demonstrate the dynamic URLs.

main.py






from flask import Flask
  
app = Flask(__name__)
  
@app.route('/user/<username>')
def show_user(username):
    # Greet the user
    return f'Hello {username} !'
  
# Pass the required route to the decorator.
@app.route("/hello")
def hello():
    return "Hello, Welcome to GeeksForGeeks"
    
@app.route("/")
def index():
    return "Homepage of GeeksForGeeks"
  
if __name__ == "__main__":
    app.run(debug=True)

Step to run the application: Run the application using the following command.

python main.py

Output: Open the browser and visit 127.0.0.1:5000/user/geek, you will see the following output.

Additionally, we can also a converter to convert the variable to a specific data type. By default, it is set to sting values. To convert use <converter:variable_name> and following converter types are supported.

  • sting: It is the default type and it accepts any text without a slash.
  • int: It accepts positive integers.
  • float: It accepts positive floating-point values.
  • path: It is like a string but also accepts slashes.
  • uuid: It accepts UUID strings.

Example: Consider the following example to demonstrate the converter type.

main.py




from flask import Flask
  
app = Flask(__name__)
  
@app.route('/post/<int:id>')
def show_post(id):
    # Shows the post with given id.
    return f'This post has the id {id}'
  
@app.route('/user/<username>')
def show_user(username):
    # Greet the user
    return f'Hello {username} !'
  
# Pass the required route to the decorator.
@app.route("/hello")
def hello():
    return "Hello, Welcome to GeeksForGeeks"
    
@app.route("/")
def index():
    return "Homepage of GeeksForGeeks"
  
if __name__ == "__main__":
    app.run(debug=True)

Step to run the application: Run the application using the following command.

python main.py

Output: Open the browser and visit 127.0.0.1:5000/post/13, you will see the following output.

The add_url_rule() function – The URL mapping can also be done using the add_url_rule() function. This approach is mainly used in case we are importing the view function from another module. In fact, the app.route calls this function internally. 

Syntax:

add_url_rule(<url rule>, <endpoint>, <view function>) 

Example: In the below example, we will try to map the show_user view function using this approach.

main.py




from flask import Flask
  
app = Flask(__name__)
  
def show_user(username):
    # Greet the user
    return f'Hello {username} !'
    
app.add_url_rule('/user/<username>', 'show_user', show_user)
  
if __name__ == "__main__":
    app.run(debug=True)

Step to run the application: Run the application using the following command.

python main.py

Output: Open the browser and visit 127.0.0.1:5000/user/pulkit, you will see the following output.




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!