Understanding Flask URL Building

In this article, we will discuss Flask URL building in detail and explore how it works with examples.

URL building refers to the process of creating URLs for different views in your Flask application.

Flask provides a URL routing mechanism that allows you to map URLs to Python functions that handle the requests.



Flask URL Building

Flask URL building is a way to create links that change depending on what users do in your application.

URLs are important because they help users move around your website.

Flask URL building lets you create links that can change based on what’s happening in your application.

The url_for() function proves to be highly beneficial for generating a URL dynamically for a particular function.

As its first parameter, this function receives the name of a function, followed by one or multiple keyword arguments that resemble to the variable portion of the URL.

The code below indicates the application of the url_for() function:

Example: 

from flask import Flask, redirect, url_for app = Flask(__name__)@app.route('/add/<int:num1>/<int:num2>') def add(num1,num2): return f'Sum of {num1} + {num2} = {num1+num2}'@app.route('/difference/<int:num1>/<int:num2>') def subtract(num1,num2): return f'Difference of {num1} – {num2} = {num1-num2}'@app.route('/mrexample/<function>') def mrx_function(function): if function == 'add': return redirect(url_for('add',num1 = 17, num2 = 15)) else: return redirect(url_for('subtract',num1 = 17, num2 = 15)) if __name__ == '__main__': app.run(debug = True)

Example Explanation

The example is a Flask application in Python that shows how to use URL routing and building using redirect() and url_for() functions.

There are three route functions in the application that are defined using the @app.route() decorator.

  • The first route function, add(), accepts two integer parameters through the URL, adds them together, and returns the result as a string.
  • The second route function, subtract(), accepts two integer parameters through the URL, subtracts them, and returns the result as a string.
  • The third route function, mrx_function(), receives a parameter called function from the URL. It checks whether the parameter is equal to the string “add” or not. If it is, the function redirects to the add() function using predefined integer values of num1 and num2. If it isn’t “add”, the function redirects to the subtract() function using the same predefined integer values of num1 and num2.

The redirect() function sends the user to a different route, while the url_for() function generates a URL for a specific route function.

When you run the application and enter the URL “http://localhost:5000/mrexample/add” into the browser, mrx_function() is called and then redirected to the add() function. The predefined integer values of num1 and num2 are passed to the add() function, which performs the addition operation and returns the result as a string.

Similarly, if you enter the URL “http://localhost:5000/mrexample/difference” into the browser, mrx_function() is called and then redirected to the subtract() function. The predefined integer values of num1 and num2 are passed to the subtract() function, which performs the subtraction operation and returns the result as a string.

The if name == ‘main’ block checks whether the current module is being run as the main program, and if so, starts the Flask development server with the debug option enabled.

Utilize the content of student and courses below for url_for() function:

Example: 

from flask import Flask, redirect, url_for app = Flask(__name__)@app.route('/students/') def students(): return f"Students: Harry, Kate, Anderson, Starc, Angelina"@app.route('/courses/<cname>') def courses(cname): return f'Courses: OOP, DSA, DCCN, DAA, DBMS, {cname}'@app.route('/mrexample/<function>') def mrx_function(function): if function == 'students': return redirect(url_for('students')) else: return redirect(url_for('courses', cname = function)) if __name__ == '__main__': app.run(debug = True)

The script above includes a function called “mrx_function(function)”, which takes a value as an argument from the URL. Within the mrx_function() function, there is a condition to check if the argument matches the word “students”. If it does, the application is directed to the students() function using url_for().

If the argument doesn’t match “students”, it redirects to the courses() function, while passing the received argument as the “cname” parameter.

To try out this code, save it and run it from the Python shell. Then, open a web browser and enter the URL:

http://localhost:5000/mrexample/students

The output render in the web browser by the application is:

Flask Url Building

Try accessing the following URL in your web browser:  “http://localhost:5000/mrexample/APW”.

After doing so, you should see a modification in the application’s output.

Courses: OOP, DSA, DCCN, DAA, DBMS, APW

Benefits

  • Flask URL building provides dynamic and flexible URLs that can change based on the state of the application.
  • Flask URL building enhances user experience by enabling easy and intuitive access to different pages and features of an application through a well-designed URL structure.
  • Flask URL building can improve the search engine optimization (SEO) of an application by using a well-designed URL structure that includes relevant keywords.
  • Flask URL building allows developers to organize and structure their application’s URLs in a logical and consistent way, making it easier to maintain and modify in the future.
  • Flask URL building enables developers to reuse the same URL pattern in multiple places within an application, reducing the amount of code required and increasing maintainability.

Conclusion

As a web developer, you know that Flask URL Building plays a vital role in designing adaptable and dynamic links that can alter based on the application’s status. The redirect() and url_for() functions provided by Flask make URL routing and building effortless for you. With this functionality, you can arrange your application routes efficiently, resulting in a more user-friendly web application. By using descriptive and user-friendly URLs, you can also improve search engine optimization (SEO) and enhance the user experience.

We value your feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Subscribe To Our Newsletter
Enter your email to receive a weekly round-up of our best posts. Learn more!
icon

Leave a Reply

Your email address will not be published. Required fields are marked *