Ich habe ein Problem, wo Jinja eine Variable behandelt, die ich es als eine literale Zeichenfolge übergeben, die die URL-Routing-Arbeit von Flask versaut.Jinja Vorlage analysiert Variable als Literal-String
app.py
- jeder "Kurs" hat seine festgelegte URL, wie von /course/<name>
gezeigt.
@app.route("/course/<name>")
@login_required
def course(name):
collection = mongo.db.courses
course = collection.find_one({"name": name})
return render_template("course.html", course=course)
profile.html
- Diese „Kurse“ auf der profile.html
Seite angezeigt werden, und sie sollten href
-Tags haben, die sie in die entsprechend gerendert course.html
Seite führen.
Versuch # 1: Ich habe versucht, in {{ course }}
in den name
Parameter übergeben, aber die URL wurde vermasselt wie Jinja es als insgesamt String behandelt.
{% for course in courses %}
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-body">
<a href="{{ url_for('course', name='{{ course }} }}">{{ course }}</a>
</div>
</div>
</div>
{% endfor %}
Versuch # 2: Ich habe versucht, eine Jinja variable Einrichtung und nebenbei, dass an den href
Tag, aber dies nicht so gut funktionierte.
{% for course in courses %}
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-body">
{% set url = url_for('course', name="{{ course }}") %}
<a href="{{ url }}">{{ course }}</a>
</div>
</div>
</div>
{% endfor %}
Wie kann ich dynamisch neue href
-Tags für jedes course
Variable erzeugen, ohne dass Jinja die href
Tags als Zeichenkette behandeln?
was meinst du mit "vermasselt"? Wie sieht das generierte HTML aus? – Nicomak