wake-up-neo.net

Erstellen Sie dynamische URLs in Flask mit url_for ()

Die Hälfte meiner Flask Routen erfordert eine Variable, sagen wir /<variable>/add Oder /<variable>/remove. Wie erstelle ich Links zu diesen Orten?

url_for() akzeptiert ein Argument für die Funktion, zu der weitergeleitet werden soll, aber ich kann keine Argumente hinzufügen?

145
Gio Borje

Es werden Schlüsselwortargumente für die Variablen benötigt:

url_for('add', variable=foo)
217
FogleBird

url_for In Flask wird zum Erstellen einer URL verwendet, um zu verhindern, dass die URLs in einer Anwendung (einschließlich Vorlagen) geändert werden müssen. Ohne url_for, Wenn Es gibt eine Änderung in der Root-URL Ihrer App, die Sie dann auf jeder Seite ändern müssen, 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 auf die 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 das oben Genannte können wir verwenden:

<a href = {{ url_for('find_question' ,question_id=1) }}>Question 1</a>

So können Sie einfach die Parameter übergeben!

83
Hiro

Siehe das Flask API-Dokument für flask.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') }}">
31