English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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úmero | Conversor | Descrição |
1 | int | Aceita números inteiros |
2 | float | Para valores de ponto flutuante |
3 | caminho | Aceita 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.