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

时间:2016-11-22 11:51:37

标签: python html sql flask

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

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

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

这是到目前为止的python脚本,它试图从tbl_user检索所有user_name,并将它们打印到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控制台)

1 个答案:

答案 0 :(得分:1)

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

在您的userHome.html模板中,您可以添加以下占位符,只要您想要显示用户名

{{ userName }}

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

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

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