2
我遇到了一個問題,Jinja正在將一個變量作爲文字字符串傳遞給它,這會導致由Flask完成的URL路由工作。Jinja模板將變量解析爲文字字符串
app.py
- 每個「課程」都有其指定的URL,如/course/<name>
所示。
@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
- 這些「課程」將顯示profile.html
頁面上,他們應該有href
標記,引導他們到合適的渲染course.html
頁。
嘗試#1:我試圖傳遞{{ course }}
到name
參數,但URL被搞砸的神社把它當作一個字符串一起。
{% 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 %}
嘗試#2:我試圖建立一個神社變量,並傳遞一個到href
標籤,但這並沒有正常工作。
{% 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 %}
如何動態生成每個course
變量新href
代碼,而無需神社對待href
標籤爲文字字符串?
你是什麼意思的「搞砸」?生成的html看起來像什麼? – Nicomak