使用FlaskLogin临时重写来自特定重定向路由的登录消息

2024-09-28 03:22:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Flask应用程序,使用Flask登录来管理用户身份验证。主路由('/')需要登录,但是我不希望它刷新为此特定路由定义的错误消息。我希望它的行为,它应该闪烁的错误信息,其他路线,但不是这一条。这是我的initpy中的一个片段

login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view =  'login'
login_manager.login_message = 'You Must Login to Access This Page!'
login_manager.login_message_category = 'error'

以下是我的视图.py在

^{pr2}$

如您所见,我有主路由密码保护,由于登录管理器的设置,它正在闪烁消息“您必须登录才能访问此页面!”当然,我会在登录模板上显示这些错误。但是,我如何确保除了主('/')路由之外的每个路由都能相应地执行此操作?我已经看过文件了,但我看不出有什么可以做的。在

我可以简单地覆盖登录吗_manager.login_消息在那个特定的路线上没有?如果是这样,如何恰当地调用、覆盖登录管理器,然后再将其更改回原来的位置?在


Tags: 用户身份验证app应用程序消息flask路由message
1条回答
网友
1楼 · 发布于 2024-09-28 03:22:23

最后,我所做的只是将Flask Login在这些情况下使用的GET变量“next”的值从视图传递给模板。然后选择不显示闪烁,如果它与我不想显示的路线相匹配。在

在视图中:

next = request.args.get('next')
render_template('dashboard.html' form=form, next=next)

在模板中:

^{pr2}$

可能有一种更简单的方法来丢弃视图中的闪光灯,但您仍然需要确保您有一些东西在做get_flashed_messages(),否则当您实际显示flash时,它们会在某个时刻堆积起来。在

相关问题 更多 >

    热门问题