GET Method in Flask

The request we type, in the browser address bar, say: ‘http://google.com’ is called the Uniform Resource Locator.  It mentions the address we are looking for, in this case, the Google landing(starting) page.  The browser, sends a GET request, to the Google server, which returns the starting webpage, in response. The GET request is simply used, to fetch data from the server. It should not be used, to apply changes, to the server data.

File Structure


File Structure


Example of HTTP GET in Flask

Let us discuss, the execution of the GET method, using the Flask library. In this example, we will consider, a landing page, that gives us facts, about Math calculations, and, allows us to enter a number, and, return its square. Let us see the example:

Step 1: The ‘squarenum.html‘ file, has a form tag, that allows the user to enter a number. The form data is sent, to the page mentioned, in the ‘action’ attribute. Here, the data is sent, to the same page, as indicated by ‘#’. Since we are using the GET method, the data will be appended, to the URL, in the name-value pair format. So, if we enter number 12, and, click on Submit button, then data will be appended, as ‘http://localhost:5000/square?num=12&btnnum=Submit#’ 

HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Square Of Number!</title>
</head>
<body>
<h1><i> Welcome to the Maths page!</i></h1>
    <p>Logic shapes every choice of our daily lives.<br>
    Logical thinking enables someone to learn and
    make decisions that affect their way of life. !</p>
    <form method="GET" action ="#">
        Enter a number :
        <input type="text" name="num" id="num"></input>
        <input type="submit" name="btnnum" id="btnnum"></input>
  </form>
</body>
</html>

Step 2: The answer.html code file looks as follows:

HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Answer Page!</title>
</head>
<body>
    <h1>Keep Learning Maths!</h1>
    <h2>Square of number {{num}} is :{{squareofnum}}</h2>
</body>
</html>

Step 3:  Here, we have written a view function, called ‘squarenumber’. The view function returns an HTTP response. The function is decorated with ‘app.route(‘/square’)’. This decorator, matches the incoming request URLs,  to the view functions. Thus, incoming requests like ‘localhost:5000/’ will be mapped to the view squarenumber() function. 

In this case, we have used a GET, hence we mention ‘methods=[‘GET’]’ in the app.route decorator. The HTML form will append the number, entered by the user, in the URL. Hence, we check if data is present. To do so, we have to use the if-elif-else logic. When data is not present, the value of argument  “num”  will be None. Here, we will display, the webpage to the user. If the user has not entered, any number, and right away clicked the Submit button, then, we have displayed the error message. We have to use the Flask Jinja2 template, to pass the result, and, the number entered into the HTML file.

Python3
# import the Flask library
from flask import Flask, render_template, request
 
 
# Create the Flask instance and pass the Flask 
# constructor the path of the correct module
app = Flask(__name__)
 
# The URL  'localhost:5000/square' is mapped to
# view function 'squarenumber'
# The GET request will display the user to enter 
# a number (coming from squarenum.html page)
 
 
@app.route('/square', methods=['GET'])
def squarenumber():
    # If method is GET, check if  number is entered 
    # or user has just requested the page.
    # Calculate the square of number and pass it to 
    # answermaths method
    if request.method == 'GET':
   # If 'num' is None, the user has requested page the first time
        if(request.args.get('num') == None):
            return render_template('squarenum.html')
          # If user clicks on Submit button without 
          # entering number display error
        elif(request.args.get('num') == ''):
            return "<html><body> <h1>Invalid number</h1></body></html>"
        else:
          # User has entered a number
          # Fetch the number from args attribute of 
          # request accessing its 'id' from HTML
            number = request.args.get('num')
            sq = int(number) * int(number)
            # pass the result to the answer HTML
            # page using Jinja2 template
            return render_template('answer.html', 
                                   squareofnum=sq, num=number)
 
 
# Start with flask web app with debug as
# True only if this is the starting page
if(__name__ == "__main__"):
    app.run(debug=True)

Output:

The user requests ‘localhost:5000/square’ and enters a number

On clicking the Submit button, one can notice, the value entered, appended, to the URL, and, the output displayed.

Data entered is appended in the URL and output is displayed.

Flask – HTTP Method

In this article, we will learn how to handle HTTP methods, such as GET and POST in Flask using Python. Here, we will understand the concept of HTTP, GET, and HTTP POST, and then we will the example and implement each in Flask. Before starting let’s understand the basic terminology:

  • GET: to request data from the server.
  • POST: to submit data to be processed to the server.
  • PUT: A PUT request is used to modify the data on the server. It replaces the entire content at a particular location with data that is passed in the body payload. If there are no resources that match the request, it will generate one.
  • PATCH: PATCH is similar to a PUT request, but the only difference is, it modifies a part of the data. It will only replace the content that you want to update.
  • DELETE: A DELETE request is used to delete the data on the server at a specified location.

Similar Reads

Flask HTTP Methods

In a Client-Server architecture, there is a set of rules, called a protocol, using which, we can allow the clients, to communicate with the server, and, vice-versa. Here, the Hyper Text Transfer Protocol is used, through which, communication is possible. For example, Our browser, passes our query, to the Google server, receiving which, the Google server, returns relevant suggestions. The commonly used HTTP methods, for this interconnection, are – GET and POST.4...

GET Method in Flask

The request we type, in the browser address bar, say: ‘http://google.com’ is called the Uniform Resource Locator.  It mentions the address we are looking for, in this case, the Google landing(starting) page.  The browser, sends a GET request, to the Google server, which returns the starting webpage, in response. The GET request is simply used, to fetch data from the server. It should not be used, to apply changes, to the server data....

POST Method in Flask

Suppose, we need to register our details, to a website, OR, upload our files, we will send data, from our browser(the client) to the desired server. The HTTP method, preferred here, is POST. The data sent, from HTML, is then saved, on the server side, post validation. The POST method should be used, when we need to change/add data,  on the server side....

Contact Us