【问题标题】:using custom page for 403 Forbidden in pyramid在金字塔中使用 403 Forbidden 的自定义页面
【发布时间】:2020-11-27 00:05:58
【问题描述】:

我已经看过文档,但我无法让它工作。如果有人能更清楚地解释我如何在金字塔中创建自定义 403 页面,那就太好了

谢谢

【问题讨论】:

    标签: pyramid http-status-code-403


    【解决方案1】:

    您可以在 @forbidden_view_config() 装饰器中添加渲染器: @forbidden_view_config(renderer='myforbiddentemplate.mako')

    或者,您也可以做一些自定义视图:

    from pyramid.httpexceptions import ( HTTPFound, HTTPNotFound, HTTPForbidden, HTTPBadRequest, HTTPInternalServerError )

    @view_config(context=HTTPNotFound, renderer='HTTPNotFoundPage.mako') def my_view(request):

    【讨论】:

      【解决方案2】:

      用forbidden_​​view_config装饰你的视图:

      @view_config(route_name='login', renderer='login-page.mako')
      @forbidden_view_config(renderer='login-page.mako')
      def login_view(request):
          return {}
      

      【讨论】:

      • 我想要一个自定义的 html 页面。请告诉在哪里包括什么。谢谢
      • 我编辑了我的回复,看看。有一个完整的解决方案。
      • 我仍然无法做到,可能是因为我还在写 raise HTTPForbidden() ?
      • 对不起,我复制了错误的例子。我在我的网站上使用这个,它将没有足够权限的用户重定向到登录页面。
      【解决方案3】:
      from pyramid.view import forbidden_view_config
      
      
      @forbidden_view_config(renderer='your_template_name')
      def forbidden_view(request):
          request.response.status = 403
          return {}
      

      【讨论】:

      • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。 OP 也在这里寻求解释。
      猜你喜欢
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 2021-12-23
      • 2017-07-03
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 2015-12-23
      相关资源
      最近更新 更多