Flask生成HTML表作为字符串,而不是表(Python 2)

Joh*_*_10 0 python html-table flask

当我尝试使用Flask将一些数据写入HTML表时,我发现了一个奇怪的问题.当页面加载时,它将数据打印成一个长字符串,如下所示:

<table class="table table-striped table-hover"><tr><th> Task </th><th> duration </th><th> points </th></tr><tr><td>50 Pullups</td><td>15</td><td>0.5000</tr><tr><td>5K Run</td><td>45</td><td>1.0000</tr><tr><td>Abs of Steel</td><td>30</td><td>1.0000</tr><tr><td>Data Science Study</td><td>60</td><td>1.0000</tr><tr><td>Drums</td><td>30</td><td>1.0000</tr><tr><td>Kegel</td><td>10</td><td>1.0000</tr><tr><td>Metta Bhavna</td><td>25</td><td>1.0000</tr><tr><td>Mindfulness</td><td>30</td><td>1.0000</tr><tr><td>Physio</td><td>10</td><td>1.0000</tr><tr><td>Singing</td><td>30</td><td>1.0000</tr><tr><td>Skipping</td><td>15</td><td>0.0000</tr><tr><td>Sprint</td><td>20</td><td>1.0000</tr><tr><td>Typing</td><td>10</td><td>1.0000</tr><tr><td>Yoga</td><td>15</td><td>1.0000</tr></table>

但是,显然将它渲染为表格会很棒.请注意,当我将HTML代码复制到页面源代码中时,它会呈现正常(因此HTML本身没有问题.)

我已经设置了如下环境:NB fetch_results是一个查询mysql数据库并以字符串格式返回结果的脚本.

import os
from flask import Flask, render_template

@app.route('/')
def table_maker():
    from myfunctions import fetch_results
    table = fetch_results()
    return render_template('home.html', table = table)
Run Code Online (Sandbox Code Playgroud)

页面源包含:

<div class="container">
    {{ table }}
</div>
Run Code Online (Sandbox Code Playgroud)

非常感谢.

Raj*_*mon 6

使用{{ table|safe }}.

safe 是Jinja2内置过滤器之一,您可以使用它来解决您的问题.

安全过滤器明确地将字符串标记为"安全",即,如果启用了自动转义,则不应自动转义该字符串.