Recuperando argumentos da URL em uma aplicação Flask. (Python)

Neste post mostro como recuperar argumentos passados tanto no corpo da url quanto via querystring.

 

A primeira coisa que vamos precisar para este exemplo é ter o Flask instalado e uma instância dele.

Para instalar, basta utilizar o PIP:

 

 

Para gerar a instancia do Flask:

 

Agora vamos aos exemplos práticos…

Recuperando um argumento numérico (integer) do corpo da URL

Se você já está acostumado a trabalhar com Flask, percebeu que o código é bem parecido com o ‘normal’, com duas diferenças:

  1. No parâmetro de definição da rota foi incluído o parâmetro <int:id> e ele indica que um argumento do tipo integer (int) e com o nome id será passado nesta posição.
  2. Na definição do método route_edit_user foi definido também um argumento com nome Id. Este nome não é aleatório. Ele corresponde ao nome que foi informado no passo anterior (definição da rota).

Exemplo de request utilizando cURL:

Resultado:  “You want to edit the user with ID: 10 | Arg type: <class ‘int’>”

 

 

Recuperando argumentos string do corpo da URL

Neste método, a lógica aplicada foi a mesma. Todavia, inclui dois argumentos na url: order_from e order_to. Ambos strings.

Exemplo de request utilizando cURL:

Resultado: “You want to see the orders from NEW YORK to WEST VIRGINIA… | Arg type: order_from: <class ‘str’> | order_to: <class ‘str’>”

 

 

Recuperando argumentos do tipo float (double) do corpo da URL

Novamente, a mesma lógica foi utilizada.

 

Exemplo de request utilizando cURL:

Resultado: “You want double 20.5… which is 41.0… | Arg type: <class ‘float’>”

 

 

Recuperando argumentos da querystring

A lógica aqui é um pouco diferente. Desta vez não estou incluindo argumentos no corpo da URL, mas passando eles via query string.

Eles podem ser recuperados utilizando a propriedade args do objeto request. Ele é um ImmutableDict com todos os argumentos que foram passados. Sendo assim, você consegue trata-lo como se fosse um dicionário  normal, só não será possível modifica-lo.

 

Exemplo de request utilizando cURL:

Resultado: “You passed 3 args using query string. Your args: ImmutableMultiDict([(‘a’, ‘1’), (‘b’, ‘Bacon’), (‘c’, ‘Hey yo!’)])”

 

 

Para quem quiser um exemplo relacionado a este post, coloquei o código no meu Github.

 

Espero ter ajudado!

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Dev, Python and tagged , , , , .