Pythonanywhere-返回多行文本
我正在使用这段代码,它(大多数时候,因为每次都不同)打印多行字符串Pythonanywhere-返回多行文本,python,html,flask,pythonanywhere,Python,Html,Flask,Pythonanywhere,我正在使用这段代码,它(大多数时候,因为每次都不同)打印多行字符串 if request.method == "POST": d = {'Dirt 4': g_dirt4, 'Destiny 2': g_destiny2, 'South Park: The Fractured but Whole': g_southpark, 'Call of Duty: WWII': g_codww2, 'Star Wars Battlefront II': g_bfront2, 'Red Dead R
if request.method == "POST":
d = {'Dirt 4': g_dirt4, 'Destiny 2': g_destiny2, 'South Park: The Fractured but Whole': g_southpark, 'Call of Duty: WWII': g_codww2, 'Star Wars Battlefront II': g_bfront2, 'Red Dead Redemption 2': g_reddead2, 'FIFA 18': g_fifa18, 'MotoGP™17': g_motogp17, 'The Elder Scrolls Online: Morrowind': g_elderscrolls, 'Crash Bandicoot N. Sane Trilogy': g_crashbandicoot}
max_value = max(d.values())
maximal_keys = [ k for k,v in d.items() if v==max_value ]
for title in maximal_keys:
print (title)
return render_template("result_page.html", title=title)
这意味着,当你点击一个按钮时,它将返回结果_page.html,在html代码中,title变量将替换为实际的title。
这是html代码:
<body>
This game(s) belongs to you: {{ title }}
</body>
问题是,在这种情况下,当我单击按钮时,它只会将标题更改为Destiny 2。我不会得到我想要的多行标题。我该怎么做
现在,在这个例子中,它将向我展示:
但我希望看到:
您当前的html模板实际上不支持打印多个元素,并且您的代码也只返回一个要呈现的标题 您应该检查另一个问题,它似乎与您的问题类似: 你应该以这样的方式结束:
<body>
This game(s) belongs to you:
<ul>
{% for title in titles %}
<li>{{title}}</li>
{% endfor %}
</ul>
</body>
此游戏属于您:
{titles%中的title%为%1}
- {{title}}
{%endfor%}
您希望您的模板“迭代某些内容”
在模板中,代码必须如下所示:
<body>
{% for t in list_of_titles %}
<p>- {{ t }}</p>
{% endfor %}
</body>
问:您是想一次显示所有标题,还是想在按下按钮后添加一个标题
评论后编辑:
<li>
<div class=”text”>
<h1>{{ n }}</h1>
</div>
<div class=”image”>
<img src=”{{ img_path }}”>
</div>
</li>
您的标题列表必须如下所示
list_of_titles = ['MotoGP', 'Dirt']
多亏了Anup,问题得到了解答:
返回渲染模板(“result\u page.html”,title=maximal\u key)
及
{title%}- {{n}
{%endfor%}
这就给了我:
@根据评论更新:
<li>
<div class=”text”>
<h1>{{ n }}</h1>
</div>
<div class=”image”>
<img src=”{{ img_path }}”>
</div>
</li>
{{n}}
我试过这个,max\u value=max(d.values())maximal\u key=[k代表k,v代表d.items(),如果v==max\u value]代表maximal\u key中的title:print(title)an\u title=dict(title)tiles.append(an\u title)返回render\u模板(“result\u page.html”,titles=titles),但它不起作用。我不知道我应该做什么:/在任何情况下,您都需要调整html模板以处理列表。我还注意到,返回块不是逻辑块的子块,因此在if块中声明的变量在return语句中不可见。如果你在你准备好之前声明了这些,哦,对不起,那已经是个孩子了,但那只是线程中的一个小错误。我知道我必须调整html以适应列表,但我不知道如何。编辑以添加jinja模板您的全局值是什么?g_dirt4,g_bfront2,etcreturn render_template(“result_page.html”,title=maximal_key)和- {title%}中n的%li>{{n}{%endfor%}
<ul> {% for n in title %} <li>{{n}}</li> {% endfor %} </ul>
<li>
<div class=”text”>
<h1>{{ n }}</h1>
</div>
<div class=”image”>
<img src=”{{ img_path }}”>
</div>
</li>