Jinjaが変数を扱っているときに問題があります。これは文字列として渡されています。これはFlaskによって行われたURLルーティング作業を妨害します。Jinjaテンプレートは変数をリテラル文字列として解析します
app.py
- 各「コース」には、/course/<name>
で示すように、指定されたURLがあります。
@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
ページに表示されます、そして、彼らは適切にレンダリングされたcourse.html
ページにそれらを導くhref
タグを持っている必要があります。
試み#1:私はname
パラメータに{{ course }}
に渡してみましたが、神社は完全にそれを文字列として扱わとして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 %}
どのように動的に神社が文字列リテラルとしてhref
タグを扱うことなく、各course
変数の新しいhref
タグを生成することができますか?
「混乱」とはどういう意味ですか?生成されたhtmlの外観はどうですか? – Nicomak