1
resposta

Enunciado da questão

"Não preciso mudar o código quando uma URL de rota for ALTERADA." Eu entendo que sim, a rota está ESCRITA NO CÓDIGO, então se houver uma DECISÃO de mudança da rota, ela terá que ser alterada no código, ainda que seja só uma string.

1 resposta

Paschoal, bom dia. Tudo bem?

Quando utilizamos o helper url_for, ele utiliza o nome da função e não a rota.

Por exemplo: Temos a rota index (index, porque esse é o nome da função)

@app.route('/')
def index():
    lista = Jogos.query.order_by(Jogos.id)
    return render_template('index.html', titulo='Jogos', jogos=lista)

Agora vamos referênciar essa rota nas páginas login.html, cadastro.html, novapagina.html, outrapagina.html.

E para isso, utilizamos o {{ url_for('index') }} em todos os htmls.

Agora imagine que, em um determinado momento, o responsável pelo site pediu para a sua página inicial ter o "/home".

Para isso, nossa única alteração seria na função index que passaria a ter o "/home", assim:

@app.route('/home')
def index():
    lista = Jogos.query.order_by(Jogos.id)
    return render_template('index.html', titulo='Jogos', jogos=lista)

Com essa alteração, todas as páginas html que estavam buscando a rota index irão continuar funcionando!

Espero que eu tenha conseguido explicar de forma clara!

Tenha bons estudos!