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%}
    @Shrewmouse这些都是整数。@Anup非常感谢!是的,但他们的价值观是什么?有多少全球冠军具有最高价值?安东尼在我回答问题时做得更好。我想一次展示所有冠军。一行一行。现在有了这段代码,它给了我这个,当title=MotoGP17和Dirt4时,你传递的是一个字符串而不是一个列表,但是你想传递一个列表很高兴听到这个。欢迎。顺便问一下,如何添加具有指定标题的图像?使用img标记u可以添加它。是的,我知道,但假设我想在每个标题下添加一个youtube视频,但youtube视频必须与标题相关。例如:我该怎么做?有什么想法吗@阿努普
    <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>