Python - roteamento

O roteamento é o mecanismo de mapeamento da URL diretamente para o código que cria a página da web. Ajuda a uma melhor gestão da estrutura da página web e aumenta consideravelmente o desempenho do site e outras melhorias ou modificações tornam-se realmente simples. Em python, o roteamento é implementado na maioria dos trabalhos de frame da web. Veremos os exemplos deflask estrutura da web neste capítulo.

Roteamento em Flask

o route()decorador em Flask é usado para vincular um URL a uma função. Como resultado, quando o URL é mencionado no navegador, a função é executada para fornecer o resultado. Aqui, URL'/hello' regra está ligada ao hello_world()função. Como resultado, se um usuário visitarhttp://localhost:5000/ URL, a saída do hello_world() função será renderizada no navegador.

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
   return 'Hello Tutorialspoint'
if __name__ == '__main__':
   app.run()

Quando executamos o programa acima, obtemos a seguinte saída -

* Serving Flask app "flask_route" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [06/Aug/2018 08:48:45] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [06/Aug/2018 08:48:46] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [06/Aug/2018 08:48:46] "GET /favicon.ico HTTP/1.1" 404 -

Abrimos o navegador e apontamos para o URL http://localhost:5000/ para ver o resultado da função que está sendo executada.

Usando variáveis ​​de URL

Podemos passar variáveis ​​de URL usando rota para construir URLS rapidamente. Para isso, usamos a função url_for () que aceita o nome da função como o primeiro argumento e o resto dos argumentos como parte variável da regra de URL.

No exemplo abaixo, passamos os nomes das funções como argumentos para a função url_for e imprimimos o resultado quando essas linhas são executadas.

from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def index(): pass
@app.route('/login')
def login(): pass
@app.route('/user/
      
       ') def profile(username): pass with app.test_request_context(): print url_for('index') print url_for('index', _external=True) print url_for('login') print url_for('login', next='/') print url_for('profile', username='Tutorials Point') 
      

Quando executamos o programa acima, obtemos a seguinte saída -

/
http://localhost/
/login
/login?next=%2F
/user/Tutorials%20Point

Redireciona

Podemos usar a função de redirecionamento para redirecionar o usuário para outro URL usando o roteamento. Mencionamos a nova URL como um valor de retorno da função que deve redirecionar o usuário. Isso é útil quando temporariamente desviamos os usuários para uma página diferente quando estamos modificando uma página da web existente.

from flask import Flask, abort, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
    return redirect(url_for('login'))
@app.route('/login')
def login():
    abort(401)
#    this_is_never_executed()

Quando o código acima é executado, a URL base vai para a página de login que usa a função abort para que o código da página de login nunca seja executado.