从 SQL 数据库中检索记录并以 HTML 格式打印(通过 Python)

Posted

技术标签:

【中文标题】从 SQL 数据库中检索记录并以 HTML 格式打印(通过 Python)【英文标题】:Retrieve record from SQL database and print in HTML (via Python) 【发布时间】:2016-11-22 11:51:37 【问题描述】:

我正在使用 Flask 的微框架创建一个单页 Web 应用程序。

我在数据库中实现了 SQL 程序来处理用户的登录和注册。

我正在尝试检索已登录用户的姓名,并在登录时向该用户个人资料页面打印欢迎消息。

这是目前为止的 python 脚本,它正在尝试从 tbl_user 检索所有 user_name(s) 并将它们打印到 userHome 页面。

app.py

@app.route('/userHome')
def userHome():
    if session.get('user'):
        return render_template('userHome.html')


        cursor1 = db.cursor()
        cursor1.execute("select user_name from tbl_user")
        result = cursor1.fetchall()
        for row in result:
            print (row[0])

    else:
        return render_template('error.html',error = 'Unauthorized Access')

    cursor.close()
    con.close()

userHome.html(我想在其中打印用户的用户名的部分)

<body style="border:1px solid blue;background:#ffffff;">

 <div class="row" style="padding-right:20px;">

     <!--PROFILE PIC Section-->
      <div class="col-md-3 col-md-offset-1">
          <div style="background:#f2f2f2;box-shadow: 10px 10px 30px #333333;margin-right:;">


             <img class="" src="http://jnrgym.com/wp-content/uploads/2013/08/Facebook-no-profile-picture-icon-620x389.jpg" style="width:100%;max-height:100%;padding:5%;"> 


            <p style="border:1px solid red;text-align:center;">

              user_name << this is where I would like user_name to appear

            </p>

      </div>
</div>

<body>

我知道这不是达到预期结果的正确方法,但是这是我第一次使用 python。我的问题是如何将结果/输出从我的 python 脚本传递到我的 HTML 页面? (或至少将其打印到 chrome 控制台)

【问题讨论】:

您在为您的 userHome.html 页面使用 Jinja 模板吗? 不,Flask 是目前唯一处理模板的东西。 return 应该在view 的末尾 一个一般性的评论,return 在您的if 之后使剩余的代码无用。您需要在运行任何返回之前运行其他代码。 感谢 ettanany 和 pshep123 指出这一点,我已经在我的项目中纠正了代码 【参考方案1】:

您应该使用 Jinja 模板引擎,因为 error.html 文件已经在使用它。

在您的 userHome.html 模板中,您可以在希望用户名出现的任何位置添加以下占位符

 userName 

然后在您的 app.py 中,使用以下内容将用户名传递给模板

return render_template('userHome.html', userName = userName)

变量 userName 应该包含您从 SQL 数据库中获取的字符串。

【讨论】:

非常感谢 Scotty3785,您已经回答了我的问题。

以上是关于从 SQL 数据库中检索记录并以 HTML 格式打印(通过 Python)的主要内容,如果未能解决你的问题,请参考以下文章

powershell 使用SQL文件和PowerShell从数据库中提取数据。设计用于SQL服务器并以CSV格式输出。看到这个链接:h

在嵌套数据列中引导统计数据并以整洁的格式检索结果

SQL 和 C# 从数据库中检索单个记录

使用cookie记录点击/浏览历史并以json格式存入

从Excel vba中的SQL Server数据中检索/创建记录集

我正在尝试使用 ajax 从数据库中检索数据并以引导模式中的形式填充