Respostas:
Leva argumentos de palavras-chave para as variáveis:
url_for('add', variable=foo)
url_for
se passar como parâmetros de função para rotas de regras variáveis em Flask
@app.route("/<a>/<b>")
e def function(a,b): ...
como função, deverá usar url_for
e especificar os argumentos das palavras-chave como este:url_for('function', a='somevalue', b='anothervalue')
url_for
no Flask é usado para criar uma URL para evitar que as despesas gerais alterem as URLs em um aplicativo (inclusive nos modelos). Sem isso url_for
, se houver uma alteração no URL raiz do seu aplicativo, você deverá alterá-lo em todas as páginas em que o link estiver presente.
Sintaxe: url_for('name of the function of the route','parameters (if required)')
Pode ser usado como:
@app.route('/index')
@app.route('/')
def index():
return 'you are in the index page'
Agora, se você tiver um link, a página de índice: você pode usar isto:
<a href={{ url_for('index') }}>Index</a>
Você pode fazer muitas coisas com ele, por exemplo:
@app.route('/questions/<int:question_id>'): #int has been used as a filter that only integer will be passed in the url otherwise it will give a 404 error
def find_question(question_id):
return ('you asked for question{0}'.format(question_id))
Para o acima exposto, podemos usar:
<a href = {{ url_for('find_question' ,question_id=1) }}>Question 1</a>
Assim você pode simplesmente passar os parâmetros!
{{ url_for('find_question' ,question_id=question.id) }}
e não{{ url_for('find_question' ,question_id={{question.id}}) }}
Consulte o documento da API da Flask para obterflask.url_for()
Outros exemplos de trechos de uso para vincular js ou css ao seu modelo estão abaixo.
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
Modelos:
Passe o nome e o argumento da função.
<a href="{{ url_for('get_blog_post',id = blog.id)}}">{{blog.title}}</a>
Ver, função
@app.route('/blog/post/<string:id>',methods=['GET'])
def get_blog_post(id):
return id
def add(variable)
?