Antworten:
Es werden Schlüsselwortargumente für die Variablen benötigt:
url_for('add', variable=foo)
url_for
werden, werden als Funktionsparameter für Routen mit variablen Regeln in Flask
@app.route("/<a>/<b>")
und def function(a,b): ...
als seine Funktion haben, sollten Sie url_for
seine Schlüsselwortargumente wie url_for('function', a='somevalue', b='anothervalue')
url_for
In Flask wird zum Erstellen einer URL verwendet, um den Aufwand zu vermeiden, URLs in einer Anwendung (einschließlich in Vorlagen) ändern zu müssen. Ohne url_for
, wenn sich die Stamm-URL Ihrer App ändert, müssen Sie sie auf jeder Seite ändern, auf der der Link vorhanden ist.
Syntax: url_for('name of the function of the route','parameters (if required)')
Es kann verwendet werden als:
@app.route('/index')
@app.route('/')
def index():
return 'you are in the index page'
Wenn Sie nun einen Link zur Indexseite haben, können Sie diesen verwenden:
<a href={{ url_for('index') }}>Index</a>
Sie können viel damit anfangen, zum Beispiel:
@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))
Für die oben genannten können wir verwenden:
<a href = {{ url_for('find_question' ,question_id=1) }}>Question 1</a>
So können Sie einfach die Parameter übergeben!
{{ url_for('find_question' ,question_id=question.id) }}
und nicht{{ url_for('find_question' ,question_id={{question.id}}) }}
Weitere Informationen finden Sie im Flask API-Dokumentflask.url_for()
Weitere Beispiele für die Verwendung zum Verknüpfen von js oder css mit Ihrer Vorlage finden Sie unten.
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
Vorlagen:
Übergeben Sie den Funktionsnamen und das Argument.
<a href="{{ url_for('get_blog_post',id = blog.id)}}">{{blog.title}}</a>
Ansicht, Funktion
@app.route('/blog/post/<string:id>',methods=['GET'])
def get_blog_post(id):
return id
def add(variable)
?