Compreendendo a construção de URL do Flask

Neste artigo, discutiremos detalhadamente a criação de URL do Flask e exploraremos como ela funciona com exemplos.

A construção de URL refere-se ao processo de criação de URLs para diferentes exibições em seu aplicativo Flask .

O Flask fornece um mecanismo de roteamento de URL que permite mapear URLs para funções Python que lidam com as solicitações.



Construção de URL em balão

A construção de URL do Flask é uma maneira de criar links que mudam dependendo do que os usuários fazem em seu aplicativo.

Os URLs são importantes porque ajudam os usuários a navegar pelo site.

A construção de URL do Flask permite criar links que podem mudar com base no que está acontecendo em seu aplicativo.

A função url_for() provou ser altamente benéfica para gerar um URL dinamicamente para uma função específica.

Como primeiro parâmetro, essa função recebe o nome de uma função, seguido por um ou vários argumentos de palavra-chave que se assemelham à parte variável da URL.

O código abaixo indica a aplicação da função url_for() :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

O exemplo é um aplicativo Flask em Python que mostra como usar o roteamento e construção de URL usando as funções redirect() e url_for() .

Existem três funções de rota no aplicativo que são definidas usando o decorador @app.route() .

  • A primeira função de rota, add(), aceita dois parâmetros inteiros por meio da URL, adiciona-os e retorna o resultado como uma string.
  • A segunda função de rota, subtract() , aceita dois parâmetros inteiros por meio da URL, os subtrai e retorna o resultado como uma string.
  • A terceira função de rota, mrx_function(), recebe um parâmetro chamado function da URL. Ele verifica se o parâmetro é igual à string “add” ou não. Se for, a função redireciona para a função add() usando valores inteiros predefinidos de num1 e num2. Se não for “add”, a função redireciona para a função subtract() usando os mesmos valores inteiros predefinidos de num1 e num2.

A função redirect() envia o usuário para uma rota diferente, enquanto a função url_for() gera uma URL para uma função de rota específica.

Quando você executa o aplicativo e insere a URL “ http://localhost:5000/mrexample/add ” no navegador, mrx_function() é chamado e redirecionado para a função add() . Os valores inteiros predefinidos de num1 e num2 são passados ​​para a função add(), que executa a operação de adição e retorna o resultado como uma string.

Da mesma forma, se você inserir a URL “http://localhost:5000/mrexample/difference” no navegador, mrx_function() será chamado e redirecionado para a função subtract(). Os valores inteiros predefinidos de num1 e num2 são passados ​​para a função subtract(), que executa a operação de subtração e retorna o resultado como uma string.

O bloco if name == 'main' verifica se o módulo atual está sendo executado como o programa principal e, se estiver, inicia o servidor de desenvolvimento do Flask com a opção de depuração habilitada.

Utilize o conteúdo do aluno e dos cursos abaixo para a função url_for():

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

O script acima inclui uma função chamada “mrx_function(function)”, que recebe um valor como argumento da URL. Dentro da função mrx_function(), existe uma condição para verificar se o argumento corresponde à palavra “students”. Em caso afirmativo, o aplicativo é direcionado para a função Students() usando url_for().

Se o argumento não corresponder a “alunos”, ele redireciona para a função cursos(), enquanto passa o argumento recebido como parâmetro “cname”.

Para experimentar este código, salve-o e execute-o no shell do Python. Em seguida, abra um navegador da Web e digite o URL:

http://localhost:5000/mrexample/students

A renderização de saída no navegador da Web pelo aplicativo é:

Frasco de construção de url

Tente acessar o seguinte URL em seu navegador: “http://localhost:5000/mrexample/APW”.

Depois de fazer isso, você verá uma modificação na saída do aplicativo.

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

Benefícios

  • A construção de URL do Flask fornece URLs dinâmicos e flexíveis que podem mudar com base no estado do aplicativo.
  • A construção de URL do Flask aprimora a experiência do usuário, permitindo acesso fácil e intuitivo a diferentes páginas e recursos de um aplicativo por meio de uma estrutura de URL bem projetada.
  • A construção de URL do Flask pode melhorar a otimização do mecanismo de pesquisa (SEO) de um aplicativo usando uma estrutura de URL bem projetada que inclui palavras-chave relevantes.
  • A construção de URL do Flask permite que os desenvolvedores organizem e estruturem as URLs de seus aplicativos de maneira lógica e consistente, facilitando a manutenção e modificação no futuro.
  • A criação de URL do Flask permite que os desenvolvedores reutilizem o mesmo padrão de URL em vários locais em um aplicativo, reduzindo a quantidade de código necessária e aumentando a capacidade de manutenção.

Conclusão

Como desenvolvedor da Web, você sabe que o Flask URL Building desempenha um papel vital no design de links dinâmicos e adaptáveis ​​que podem ser alterados com base no status do aplicativo. As funções redirect() e url_for() fornecidas pelo Flask facilitam o roteamento e a criação de URLs para você. Com essa funcionalidade, você pode organizar suas rotas de aplicativos com eficiência, resultando em um aplicativo da Web mais amigável. Ao usar URLs descritivos e fáceis de usar, você também pode melhorar a otimização do mecanismo de pesquisa ( SEO ) e aprimorar a experiência do usuário.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone