从 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