我在Python烧瓶中创建了一个应用程序,我正在努力编码我的链接。在我的HTML模板中,我从JSON调用数据并基于JSON中的变量,我想创建一个指向另一个页面的链接,但是那些具有" space"的变量。在它们中,只取第一个单词,链接不能正常工作。
这是我的JSON:
[
{
"team":"AFC Bournemouth"
},
{
"team":"Arsenal"
}
]
这是我的python:
@app.route('/<team>/')
def artist(team):
json_data=open('static/data.json').read()
data= json.loads(json_data)
urllib.quote_plus(data.team)
return render_template("team.html", team=team)
我试图使用&#34; urllib.quote_plus&#34;但是我收到了错误
AttributeError:&#39; list&#39;对象没有属性&#39; team&#39;
我不知道如何修复它。
这是我在html中的循环:
{% for data in results %}
<div class="team">
<p><a href=/{{ data.team }}>{{ data.team }}</a></p>
</div>
{% endfor %}
在我使用之前&#34; urllib.quote_plus&#34; &#34; Arsenal&#34;的链接工作完美,但是对于AFC伯恩茅斯&#34;它只接受了'#34; AFC&#34;。
这个词答案 0 :(得分:0)
奇怪的是,它正在为阿森纳&#34;正常工作。实际上你应该遍历&#34;数据&#34;因为它是一个列表
示例:
@app.route('/<team>/')
def artist(team):
json_data=open('static/data.json').read()
data= json.loads(json_data)
data = [{'team': urllib.quote_plus(team['team'])} for team in data]
return render_template("team.html", results=data)
另一件事是,在render_template中,您发送的是变量团队而不是结果(在我的示例中已更改)。这样它就可以了,并且可以使用你的Jinja模板。
编辑:更改列表理解