English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Regras de Variáveis Flask

URL pode ser construída dinamicamente adicionando parte variável ao parâmetro de regra. Esta parte variável é marcada como <variable->name>. Ele é passado como parâmetro nomeado para a função associada à regra.

No exemplo a seguir, o parâmetro de regra do decorador route() contém parte adicional adicionada ao URL /a variável <name> do hello. Portanto, se você inserir a URL no navegador: http://localhost:5000/hello/w3codebox, então 'w3codebox será fornecido como parâmetro para a função hello().

Referência no código a seguir -

# Nome do Arquivo : example.py
# Copyright : 2020 By w3codebox
# Autor por: pt.oldtoolbag.com
# Data : 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/hello/<name>')
 def hello_name(name):
     return 'Hello %s!' % name
 if __name__ == '__main__':
     app.run(debug = True)

Salve o script acima no arquivo: hello.py e execute-o a partir do Python Shell.

A seguir, abra o navegador e insira a URL => http://localhost:5000/hello/w3codebox. No navegador, você verá Hello w3codebox

Além da parte variável de string padrão, podem ser usados os seguintes padrões de construtores de conversor -

NúmeroConversorDescrição
1intAceita números inteiros
2floatPara valores de ponto flutuante
3caminhoAceita o caractere de separador de diretório barra invertida (/)

No código abaixo, todos esses construtores foram usados.

# Nome do Arquivo : example.py
# Copyright : 2020 By w3codebox
# Autor por: pt.oldtoolbag.com
# Data : 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/blog/<int:postID>')
 def show_blog(postID):
     return 'Número de Blog %d' % postID
 @app.route('/rev/<float:revNo>')
 def revisão(revNo):
     return 'Número de Revisão %f' % revNo
 if __name__ == '__main__':
     app.run()

Execute o código acima no Python Shell. Acesse a URL no navegador => http:// localhost:5000/blog/11。

O valor numérico fornecido é usado como parâmetro da função:show_blog(). O navegador exibe a seguinte saída -

# Nome do Arquivo : example.py
# Copyright : 2020 By w3codebox
# Autor por: pt.oldtoolbag.com
# Data : 2020-08-08
Número do Blog 11

Insira este URL no navegador - http://localhost:5000/rev/1.1

A função revision() recebe um número de ponto flutuante como parâmetro. O seguinte resultado aparece na janela do navegador -

# Nome do Arquivo : example.py
# Copyright : 2020 By w3codebox
# Autor por: pt.oldtoolbag.com
# Data : 2020-08-08
Número da Revisão 1.100000

As regras de URL do Flask são baseadas no módulo de roteamento Werkzeug. Isso garante que a URL formada seja única e baseada no exemplo estabelecido pelo Apache.

Considere as regras definidas no seguinte script -

# Nome do Arquivo : example.py
# Copyright : 2020 By w3codebox
# Autor por: pt.oldtoolbag.com
# Data : 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/flask
 def hello_flask():
     return 'Hello Flask'
 @app.route('/python/)
 def hello_python():
     return 'Hello Python'
 if __name__ == '__main__':
     app.run()

os dois padrões parecem muito semelhantes, mas no segundo padrão, é usado o traço invertido (/)。 Portanto, tornou-se uma URL padronizada. Portanto, use/python ou/python/retorna a mesma saída. No entanto, no primeiro caso de regra, a URL:/flask/Pode causar404 Página Não Encontrada.