处理 g.user 变量未定义错误?

问题描述

在我们的 jinja 模板中,我们有一段代码试图为当前用户创建一个跨度:

<span class="fa fa-user"></span> {{g.user.get_full_name()}}

但是,如果用户碰巧清除了浏览器上的 cookie,这个 g.user.get_full_name 函数将不再存在,从而导致应用程序崩溃。

我不一定要在清除 cookie 时重建/保留 g.user 本地代理,但我至少希望应用程序能够优雅地处理它,也许重定向登录页面。有没有办法为任意 g.user.x 引用捕获这些异常?

解决方法

你可以使用类似的东西

{{g.user.get_full_name() if g.user is not None else "do something"}}

或在后端添加检查并在不存在时重定向