Obtener parámetros de consulta usando Flask

Salman Mehmood 15 febrero 2024
Obtener parámetros de consulta usando Flask

Aprenderemos, con esta explicación, cómo obtener los parámetros de la URL con la ayuda de la cadena de consulta de solicitud en Flask.

Extraiga el parámetro con la ayuda de la cadena de consulta de solicitud en Flask

En general, construimos una URL limpia con nuestros parámetros en Flask, pero a veces queremos una cadena de consulta tradicional por cualquier motivo. Es fácil trabajar con nuestras cadenas de consulta; simplemente están separados por & y el valor en el lado derecho.

Ahora le mostraremos exactamente cómo extraerlos, y podemos usarlos en alguna parte de nuestra aplicación, así que comencemos. Configuraremos nuestra aplicación Flask e importaremos la clase Flask del módulo Flask, y también necesitamos importar la variable de solicitud e instanciar un objeto con la clase Flask.

from flask import Flask, request

Definiremos el bloque principal, y dentro de este bloque, usaremos el método run() para ejecutar nuestra aplicación. Luego pondremos debug igual a True.

if __name__ == "__main__":
    app.run(debug=True)

Ahora crearemos una nueva ruta y llamaremos a params para esta ruta, y la función se llamará Get_Query_Params(). Devolveremos algunas cadenas para obtener los parámetros de la cadena de consulta.

Necesitaremos usar la variable de solicitudes, definir dos argumentos y acceder al parámetro de consulta. Para obtenerlos, solo necesitamos llamar a requests.args, un diccionario con todos los parámetros en la cadena de consulta.

El primero se llamará VAR1, y el segundo se llamará VAR2 y almacenará los valores del diccionario usando la tecla requests.args['key']. Estamos devolviendo estos elementos del diccionario para mostrarlos en la página.

@app.route("/params")
def Get_Query_Params():
    VAR1 = request.args["var1"]
    VAR2 = request.args["var2"]

    return f"Student name is: {VAR!} and Father nmae is: {VAR2}"

Iniciemos el servidor, pasemos el parámetro dentro de la ruta y presionemos Enter para ver el parámetro mostrado.

Flask Obtener parámetros de consulta Salida 1

Ahora podemos ver que extraemos fácilmente estos valores de la cadena de consulta.

Tomaremos un ejemplo más para acceder a todos los parámetros de consulta. Crearemos una variable llamada var1, que almacenará los request.args; este es un diccionario que contiene todas las claves y valores que proporcionamos como nuestros parámetros de consulta.

Ahora aplicaremos un bucle for sobre los elementos del diccionario y podremos acceder e imprimir estas claves y valores.

@app.route("/")
def Get_Query_Params():
    var1 = request.args
    for key, value in var1.items():
        print(key, value)

Usando las claves, también podemos acceder a parámetros de consulta específicos usando declaraciones if-else para verificar que existan esos parámetros de consulta reales. Por ahora, la forma que usamos para acceder a la clave es usando var1.get() en lugar de usar request.args['key'] porque get() es el método que nos ayuda a acceder a la clave.

if "nationality" in var1.keys():
    print(var1.get("nationality"))
return f'Age is {var1.get("age")} and nationality is {var1.get("nationality")}'

Ahora guardamos e iniciamos el servidor, vamos al navegador y proporcionamos el par clave-valor dentro de la ruta. Cuando ejecutamos esta página, podemos ver los parámetros que se muestran, así como podemos ver en la consola donde se imprimen las claves y los valores.

Flask Obtener parámetros de consulta Salida 2

Es muy similar a obtener los datos de un formulario; si alguien envía un formulario, podemos extraerlo de un punto final.

Código Python completo:

from flask import Flask, request

app = Flask(__name__)

# @app.route('/params')
# def Get_Query_Params():
#     VAR1=request.args['var1']
#     VAR2=request.args['var2']

#     return f'Student name is: {VAR1} and Father nmae is: {VAR2}'


@app.route("/")
def Get_Query_Params():
    var1 = request.args
    for key, value in var1.items():
        print(key, value)
    if "nationality" in var1.keys():
        print(var1.get("nationality"))
    return f'Age is {var1.get("age")} and nationality is {var1.get("nationality")}'


if __name__ == "__main__":
    app.run(debug=True)
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn