/ / wie man Flask Jinja2 url_for mit mehreren Parametern verwendet - python, flask, jinja2, url-for

wie man Flask Jinja2 url_for mit mehreren Parametern verwendet - python, flask, jinja2, url-for

jeder!

Ich habe ein Problem, während ich die Funktion jinja2 url_for () verwendete.

Ich habe eine Route wie:

@app.route("/article/<int:article_id>/<url_title>/", methods=["GET"])
def article_page(article_id, url_title):
article = Article.query.get(article_id)
if article == None:
abort(404)
return render_template("article.html", article=article)

In der Jinja-Vorlagendatei möchte ich eine URL erstellen, die auf article_page verweist. Ich schreibe also so:

<h5><a href="{{ url_for("article_page",article_id=article.id,url_title=article.url_title) }}">{{ article.title }}</a></h5>

aber wenn ich diese Seite starte, bekomme ich eine Fehlermeldung

raise BuildError(endpoint, values, method)
BuildError: ("article_page", {"article_id": 1}, None)

scheint der zweite Parameter "url_title" fehlt. Wie kann ich url_for () mit mehreren Parametern korrekt verwenden? Vielen Dank an alle!

Antworten:

6 für die Antwort № 1

Gemäß url_for Dokumentation:

Wenn der Wert eines Abfragearguments "Keine" ist, wird das gesamte Paar übersprungen.

Stelle sicher das url_title ist nicht None.

Oder geben Sie den Standardwert für an url_title in dem article_page Funktion.


0 für die Antwort № 2

Sie haben einen Punkt verpasst, versuchen Sie das:

url_for(".article_page", article_id=article.id, url_title=article.url_title)