如何在 2 种不同的情况下使用 Flask Flash 消息 app.route
How to use flask flash messages in 2 different app.route
我是 flask 框架的新开发人员,我被这些显示错误消息的方法卡住了,我不明白如何使用 flask flash 消息。我考虑了 3 或 4 天,我对如何处理这个问题有了一些想法。所以我的计划很简单,我在查看器中进行了一些身份验证登录。如果结果输出值为 false,它将产生错误代码,该错误代码将显示在我的登录页面中。这是我如何实现我的想法。
@app.route('/login/process', methods = ['POST'])
def loginprocess():
username = request.form.get('user_name')
passwd = request.form.get('user_passwd')
userAdminAuth = userLogin.checkUserAdmin(username, passwd)
userMemberAuth = userLogin.checkUserMember(username, passwd)
if userAdminAuth == True and userMemberAuth == False:
session['logged_in'] = True
session['username'] = username
return redirect(url_for('admin'))
elif userAdminAuth == False and userMemberAuth == True:
session['logged_in'] = True
session['username'] = username
return redirect(url_for('member'))
else:
error = 'Invalid username or password'
return redirect(url_for('login'))
@app.route('/login')
def login():
return render_template('login.html')
在 html 代码中我有这个
{% if error %}
<div class="alert alert-danger" role="alert">
<span class="glyphicon glyphicon-exclamation-sign"></span>
<span class="sr-only">Error</span>
{{ error }}
</div>
{% endif %}
问题是如何传递变量
error = 'Invalid username or password'
在url路线
@app.route('/login/process', methods=['POST'])
到url路线
@app.route('/login')
哦不管怎样你应该知道这个
<form action="/login/process" method="post">
<div class="form-group">
<div class="input-group">
<div class="input-group-addon icon-custumized"><span class="glyphicon glyphicon-user"></span></div>
<input type="text" name="user_name" class="form-control form-costumized" placeholder="Username">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon icon-custumized"><span class="glyphicon glyphicon-lock"></span></div>
<input type="password" name="user_passwd" class="form-control form-costumized" placeholder="Password">
</div>
</div>
<div class="btn-toolbar" role="toolbar" aria-label="action">
<div class="btn-group" role="group" aria-label="action">
<a class="btn btn-default btn-customized" href="#"><span class="glyphicon glyphicon-list-alt"></span> <span class="textsize">Register</span></a>
<button type="submit" class="btn btn-default btn-customized"><span class="textsize">Login</span> <span class="glyphicon glyphicon-menu-right"></span></button>
</div>
</div>
</form>
在Python中,您必须调用:
flask.flash('This is the message')
然后,在模板中使用get_flashed_messages
获取闪烁的消息并显示它们,例如:
{% with messages = get_flashed_messages(with_categories=True) %}
{% for category, message in messages %}
<div class="flash {{category}}">{{message}}</div>
{% endfor %}
{% endwith%}
Flask documentation 有一个非常简单和好的例子。
消息在一个路由中闪烁并在另一个路由中显示这一事实不是问题。这正是 flask.flash
设计的用例!
我是 flask 框架的新开发人员,我被这些显示错误消息的方法卡住了,我不明白如何使用 flask flash 消息。我考虑了 3 或 4 天,我对如何处理这个问题有了一些想法。所以我的计划很简单,我在查看器中进行了一些身份验证登录。如果结果输出值为 false,它将产生错误代码,该错误代码将显示在我的登录页面中。这是我如何实现我的想法。
@app.route('/login/process', methods = ['POST'])
def loginprocess():
username = request.form.get('user_name')
passwd = request.form.get('user_passwd')
userAdminAuth = userLogin.checkUserAdmin(username, passwd)
userMemberAuth = userLogin.checkUserMember(username, passwd)
if userAdminAuth == True and userMemberAuth == False:
session['logged_in'] = True
session['username'] = username
return redirect(url_for('admin'))
elif userAdminAuth == False and userMemberAuth == True:
session['logged_in'] = True
session['username'] = username
return redirect(url_for('member'))
else:
error = 'Invalid username or password'
return redirect(url_for('login'))
@app.route('/login')
def login():
return render_template('login.html')
在 html 代码中我有这个
{% if error %}
<div class="alert alert-danger" role="alert">
<span class="glyphicon glyphicon-exclamation-sign"></span>
<span class="sr-only">Error</span>
{{ error }}
</div>
{% endif %}
问题是如何传递变量
error = 'Invalid username or password'
在url路线
@app.route('/login/process', methods=['POST'])
到url路线
@app.route('/login')
哦不管怎样你应该知道这个
<form action="/login/process" method="post">
<div class="form-group">
<div class="input-group">
<div class="input-group-addon icon-custumized"><span class="glyphicon glyphicon-user"></span></div>
<input type="text" name="user_name" class="form-control form-costumized" placeholder="Username">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon icon-custumized"><span class="glyphicon glyphicon-lock"></span></div>
<input type="password" name="user_passwd" class="form-control form-costumized" placeholder="Password">
</div>
</div>
<div class="btn-toolbar" role="toolbar" aria-label="action">
<div class="btn-group" role="group" aria-label="action">
<a class="btn btn-default btn-customized" href="#"><span class="glyphicon glyphicon-list-alt"></span> <span class="textsize">Register</span></a>
<button type="submit" class="btn btn-default btn-customized"><span class="textsize">Login</span> <span class="glyphicon glyphicon-menu-right"></span></button>
</div>
</div>
</form>
在Python中,您必须调用:
flask.flash('This is the message')
然后,在模板中使用get_flashed_messages
获取闪烁的消息并显示它们,例如:
{% with messages = get_flashed_messages(with_categories=True) %}
{% for category, message in messages %}
<div class="flash {{category}}">{{message}}</div>
{% endfor %}
{% endwith%}
Flask documentation 有一个非常简单和好的例子。
消息在一个路由中闪烁并在另一个路由中显示这一事实不是问题。这正是 flask.flash
设计的用例!