我正在使用带有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。
我正在使用顶部定义的代码块来检查用户是否经过身份验证。我想知道在金字塔中有更好的方法吗?
此致 Mark Huang
答案 0 :(得分:5)
这很好。通常,为了分离表示和逻辑,您可以将用户登录的事实传递给您的模板,而不是在mako中计算它。通常,您需要有关用户的更多信息,而不仅仅是他们已登录。为此,以下食谱配方非常有用。
http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/auth/user_object.html