python - 如何在 Pyramid 模板中检查经过身份验证的用户?

标签 python pyramid mako

我正在使用带有 Mako 模板的 Pyramid 1.3b。我有一个基本模板,它根据用户是否登录显示一些导航组件。我是这样做的:

      <%!
        from pyramid.security import authenticated_userid

        def is_authenticated(request):
          return authenticated_userid(request)
      %>

% if is_authenticated(request):
        <!-- 2 Column -->
        <div class="row-fluid main-content">
          <div class="span2">
            <ul class="nav nav-list">
              <li class="nav-header">
                Company A
              </li>
              <li class="active"><a herf="/product/add">Product</a></li>
              <li><a href="#">Order</a></li>
            </ul>
          </div>
          <div class="span10">
            ${self.body()}
          </div>
        </div>
        <!-- End of 2 column -->
% else:
        ${self.body()}
% endif

因此,如果用户已登录,我将尝试显示两列布局,如果用户未登录,则仅显示 100% 宽度的 div。

我正在使用顶部定义的代码块来检查用户是否已通过身份验证。我想知道在 Pyramid 中是否有更好的方法来做到这一点?

问候, 马克·黄

最佳答案

这很好。通常为了分离表示和逻辑,您会将用户已登录的事实传递到您的模板中,而不是在 mako 中计算它。此外,通常您需要有关用户的更多信息,而不仅仅是他们已登录。为此,以下食谱非常有用。

http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/auth/user_object.html

关于python - 如何在 Pyramid 模板中检查经过身份验证的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9974647/

相关文章:

python - 在 python 中写入文本文件最后一行不起作用

C++ Python导入类;调用方法

python - 当未指定套件时,nose 对 setUp 中的函数运行测试

python - 是否(仍然)没有像样的 Pyramid OAuth2 Provider 库?

python - 如何使用参数渲染基于文件的模板?

python - 是否可以使用 Python 3.6 为 iOS 编写 Kivy 应用程序?

python - 接收组播: Does TTL matter?

python - 对象没有属性 - Pyramid

python - Mako 动态模板继承

syntax-highlighting - Notepad++ 在任何 <% 的 Mako Templates 标签之后都会丢失高亮的 HTML 标签。如何禁用此行为?