Flask 未呈现模板,尽管没有错误

Flask not rendering template despite no errors

提问人:pwoods 提问时间:10/26/2023 最后编辑:pwoods 更新时间:10/26/2023 访问量:48

问:

Flask 正在运行,一切都在运行,直到需要渲染我的模板化,但它没有做任何事情。

因此,我有一个为类项目创建的 HTML 文档,现在我正在尝试链接 MySQL 数据库以检索一些表并将它们放入 HTML 文档中。到目前为止,我已经成功地使用 pandas 将表格从 MySQL 转换为 python 中的 HTML 语法字符串:

for x in result:
    df2 = pd.DataFrame(list(x)).T
    df = pd.concat([df,df2])

pdTable = df.to_html()

但是,当涉及到我的 app.py 时,我将 pdTable 导入 app.py 并尝试使用 render_template 将其呈现到 HTML 文档中,但它似乎什么也没做:

from flask import Flask, render_template
import DBConnect
app = Flask(__name__)
print(DBConnect.pdTable)
@app.route('/')
def sqlTable():
    return render_template("indexCopy.html", pandas_table=DBConnect.pdTable)

if __name__ == '__main__':
    app.run()

我的indexCopy.html位于 app.py 所在目录的文件夹(templates)中, 在我的 HTML 文档中,据我所知,这就是您应该如何进行表达式:

<div class="employeeTable">
    <a id="Employee"><h2>Employee</h2></a>
    {{ pandas_table|safe }}
</div>

我已经在这个路障上呆了几个小时了,只是无法弄清楚这一点。任何帮助将不胜感激!

更新

已发现问题。这与我对 Flask 应用程序工作方式的困惑有关。我最初认为 flask 会覆盖 HTML 文件 HTML,这就是为什么我如此困惑的原因,我打开 indexCopy.html 认为它应该被覆盖。我没有意识到您需要打开烧瓶服务器,即。127.0.0.1:5000. 一旦我发现一切都在按应有的方式呈现。希望这对任何有类似问题/困惑的人有所帮助。

python html mysql flask jinja2

评论

0赞 John Gordon 10/26/2023
我认为这个论点应该作为字典传递,而不是作为 kwarg 传递。{'pandas_table': DBConnect.pdTable}pandas_table=DBConnect.pdTable
0赞 pwoods 10/26/2023
试过了,但没有区别,我想知道sqlTable函数是否由于某种原因没有被调用?return render_template("indexCopy.html", {'pandas_table': DBConnect.pdTable})
2赞 John Gordon 10/26/2023
作为第一个调试步骤,传递一个硬编码的值,例如并查看显示的内容。{'pandas_table': 'hello'}
0赞 pwoods 10/26/2023
那也行不通
0赞 John Gordon 10/27/2023
然后,这表明代码实际上呈现的 html 模板文件与您想象的不同。

答: 暂无答案