python Pyramid ,登录时在根 url 呈现用户仪表板

标签 python pyramid

在 Pyramid 应用程序中如何在根 url 处呈现已登录用户的仪表板?未登录时,根 url 会显示登录表单。

搜索后我只找到了其他框架的示例。

最佳答案

你可以简单地做:

@view_config(route_name='home', renderer='dashboard.jinja2')
def home_view(request):
    if request.authenticated_userid is None:
        # most people would probably opt to redirect to the login url
        # here instead of rendering a response, but you asked
        return render_to_response('login.jinja2', {}, request=request)
    # user is logged in, so use the dashboard renderer
    return {}

但是, Pyramid 很酷并且有谓词。整洁的。所以我们可以使用 effective_principals 谓词根据用户是否登录在 2 个不同的 View 之间进行调度:

from pyramid.security import Authenticated

@view_config(route_name='home', effective_principals=Authenticated, renderer='dashboard.jinja2')
def dashboard_view(request):
    return {}

@view_config(route_name='home', renderer='login.jinja2')
def login_from_home_view(request):
    return {}

关于python Pyramid ,登录时在根 url 呈现用户仪表板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35960584/

相关文章:

python - 带有特殊字符 "^"的文件名无法被pattern.match(RegEx 函数)识别

python - django rest framework - 总是插入,从不更新

python - 模板更改时如何重新加载 pserve?

python - 如何使用 Pyramid 访问 Plone 生成并保存在 ZODB 上的数据?

Python Pyramid - URL 调度和遍历问题与哈希 (/)

python - 如何在Python中获得数值导数函数?

python - pylint 可以用来标记未使用的全局变量吗?

python - 如何将 URL 的 'id' 部分传递给 view_callable?

python - 将列与 has 合并\n

python - Pyramid 中的路由子域