Połowa moich tras Flask wymaga zmiennej powiedzmy, /<variable>/add
lub /<variable>/remove
. Jak utworzyć linki do tych lokalizacji?
url_for()
pobiera jeden argument, aby funkcja mogła kierować, ale nie mogę dodać argumentów?
Bierze argumenty słów kluczowych dla zmiennych:
url_for('add', variable=foo)
def add(variable)
?url_for
przejdą jako parametry funkcji dla zmiennych tras reguł w Flask@app.route("/<a>/<b>")
idef function(a,b): ...
jako funkcję, powinieneś użyćurl_for
i podać argumenty tego słowa kluczowego w następujący sposób:url_for('function', a='somevalue', b='anothervalue')
url_for
in Flask służy do tworzenia adresu URL, aby uniknąć konieczności zmiany adresów URL w całej aplikacji (w tym w szablonach). Bez tegourl_for
, jeśli nastąpi zmiana w głównym adresie URL Twojej aplikacji, musisz ją zmienić na każdej stronie, na której znajduje się link.Składnia:
url_for('name of the function of the route','parameters (if required)')
Może być używany jako:
Teraz, jeśli masz link do strony indeksu: możesz użyć tego:
Możesz z nim zrobić wiele rzeczy, na przykład:
Do powyższego możemy użyć:
W ten sposób możesz po prostu przekazać parametry!
źródło
{{ url_for('find_question' ,question_id=question.id) }}
a nie{{ url_for('find_question' ,question_id={{question.id}}) }}
Zobacz dokument Flask API dla
flask.url_for()
Inne przykładowe fragmenty użycia do łączenia js lub css z szablonem znajdują się poniżej.
źródło
Szablony:
Podaj nazwę funkcji i argument.
Widok, funkcja
źródło