使用 Python 在 HTML 中打印来自 MySql 的数据

Printing data from MySql in HTML using Python

我正在尝试将 MySQL 数据库中的项目列表打印到 HTML 页面上。我的数据库可以随着时间的推移添加到此页面并更改,因此列表必须随着数据库的更改而更改。最棘手的部分是列表中的每个项目 link 都指向一个信息页面(指向信息页面的 link 也将存储在数据库中)。我在 python 中有 运行 所有其他代码,它 运行 通过执行以下操作成为 HTML 页面:

    def render_POST( self, request):
        file=open('NewOptionsPage.html','r')
        filedata=file.read()
        return filedata

-其中 NewOptionsPage 是我的 html 代码。

所以我的问题是:

我要在我的 HTML 代码中输入什么才能从我的数据库中打印出来,这样我也可以从数据库中给它一个 link?如果这在 python 中不可行,我如何在 php 或其他语言中做到这一点?

如果我没理解错的话,这是 HTML 模板语言(如 Jinja2 or Mako

的绝佳用例

在 OptionsPage.html 中,您可以存储如下内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>My Webpage</title>
</head>
<body>
    <ul id="navigation">
    {% for item in items %}
        <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
    {% endfor %}
    </ul>

    <h1>My Webpage</h1>
    {{ a_variable }}

    {# a comment #}
</body>
</html>

您的 python 代码执行如下操作:

def get_items(db_connection):
    cursor = db_connection.cursor()
    cursor.execute("SELECT a, b FROM some_table")
    items = cursor.fetchall()
    return items

然后是一点模板魔法:

items = get_items(db_connection)
template = Template(file='OptionsPage.html')
print(template.render(items=items, a_variable=42))

如果您 Google 模板语言,您会看到相当多的模板语言适用于 python。

HTH