我正在创建一个Python Flask应用程序,其中用户帐户的名称将从MySQL数据库传递到一个Flask应用程序,该应用程序可以在网页上使用。
我已经成功地使用以下方法从数据库中的用户凭据中检索到了名字:
if sha256_crypt.verify(userDetails['password'], str (data[0])):
cursor.execute("SELECT fname FROM user_details WHERE email = %s;", (email, ))
name = cursor.fetchone()
session['user'] = name
return redirect(url_for('success', name=name))
为了解释这段代码的作用,一旦用户输入的登录详细信息被数据库检查并授权,查询就会从
user_details
表并将其分配给
name
变量,该名称用于启动会话。
然后,用户返回到登录页面(现在已登录),其中另一个变量调用
名称
(我可能会对此进行更改,以便更容易区分)传递存储在会话中的名称,以便使用此功能在网站上显示:
@app.route('/loginpage', methods=['POST', 'GET'])
def loginpage():
if 'user' in session:
name = session['user']
return render_template('login.html', name=name, loggedOut=False, loggedIn=True)
return render_template('login.html', loggedOut=True, loggedIn=False)
这一切都成功地工作,并从数据库中检索用户的名字,但唯一的问题是,当名称显示为
{{name}}
在HTML中,名称显示为
(‘约翰’,)
,例如,这意味着:
<div class="container logout-greeting">
<h5 style="text-align: center">Hello {{name}}, it appears you are logged in, click here to log out</h5>
</div>
应显示为:
“你好,John,您似乎已登录,请单击此处注销”
而是显示为:
“您好(‘John’),您似乎已登录,请单击此处注销”
我与一位在构建Web应用程序方面更有经验的人进行了交流,但他们没有发现问题,那么是否有其他人可以给我一个指针,说明是什么导致了这种情况?