serve python web-services flask url-parameters

serve - Python Flask ¿Cómo obtener parámetros de una URL?



flask url converters (4)

Los parámetros de la URL están disponibles en request.args , que es un MultiDict que tiene un método de get , con parámetros opcionales para el valor default ( default ) y tipo ( type ), que es un llamador que convierte el valor de entrada al formato deseado.

from flask import request @app.route(''/my-route'') def my_route(): page = request.args.get(''page'', default = 1, type = int) filter = request.args.get(''filter'', default = ''*'', type = str)

Ejemplos con el código anterior:

/my-route?page=34 -> page: 34 filter: ''*'' /my-route -> page: 1 filter: ''*'' /my-route?page=10&filter=test -> page: 10 filter: ''test'' /my-route?page=10&filter=10 -> page: 10 filter: ''10'' /my-route?page=*&filter=* -> page: 1 filter: ''*''

En Flask, ¿cómo extraigo parámetros de una URL? ¿Cómo puedo extraer parámetros nombrados de una URL usando frasco y python?

Cuando el usuario accede a esta URL que se ejecuta en mi aplicación de frasco, quiero que el servicio web pueda manejar los parámetros especificados después del signo de interrogación:

http://10.1.1.1:5000/login?username=alex&password=pw1 #I just want to be able to manipulate the parameters @app.route(''/login'', methods=[''GET'', ''POST'']) def login(): username = request.form[''username''] print(username) password = request.form[''password''] print(password)


Si tiene un solo argumento pasado en la URL, puede hacerlo de la siguiente manera

from flask import request #url http://10.1.1.1:5000/login/alex from flask import request @app.route(''/login/<username>'', methods=[''GET'']) def login(username): print(username)

En caso de que tengas múltiples parámetros:

#url http://10.1.1.1:5000/login?username=alex&password=pw1 from flask import request @app.route(''/login'', methods=[''GET'']) def login(): username = request.args.get(''username'') print(username) password= request.args.get(''password'') print(password)

Lo que intentaba hacer funciona en el caso de solicitudes POST donde los parámetros se pasan como parámetros de formulario y no aparecen en la URL. En caso de que realmente esté desarrollando una API de inicio de sesión, es recomendable utilizar la solicitud POST en lugar de GET y exponer los datos al usuario.

En caso de solicitud posterior, funcionaría de la siguiente manera:

#url http://10.1.1.1:5000/login

Fragmento de HTML:

<form action="http://10.1.1.1:5000/login"> Username : <input type="text" name="username"><br> Password : <input type="password" name="password"><br> <input type="submit" value="submit"> </form>

Ruta:

from flask import request @app.route(''/login'', methods=[''POST'']) def login(): username = request.form.get(''username'') print(username) password= request.form.get(''password'') print(password)


También puede usar corchetes <> en la URL de la definición de vista y esta entrada irá a sus argumentos de función de vista

@app.route(''/<name>'') def my_view_func(name): return name


Utilice request.args para obtener el contenido analizado de la cadena de consulta:

from flask import request @app.route(...) def login(): username = request.args.get(''username'') password = request.args.get(''password'')