我有一个使用金字塔1.8的基本应用程序,我希望有一个forbidden_view_config来挑战客户端。
在我的views.py中有:
from pyramid.view import view_config
from pyramid.view import forbidden_view_config
from pyramid.httpexceptions import HTTPUnauthorized
from pyramid.security import forget
@view_config(route_name='home', renderer='templates/mytemplate.jinja2')
def my_view(request):
return {'project': 'odkchallenge'}
@forbidden_view_config(route_name='carlos')
def auth_view(request):
response = HTTPUnauthorized()
response.headers.update(forget(request))
return response在我的init.py中有:
from pyramid.config import Configurator
def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
config = Configurator(settings=settings)
config.include('pyramid_jinja2')
config.add_static_view('static', 'static', cache_max_age=3600)
config.add_route('home', '/')
config.add_route('carlos', '/carlos')
config.scan()
return config.make_wsgi_app()但是当我去http://localhost:6543/carlos的时候我得到了:
404找不到资源。 /carlos
我一直在查看关于forbidden_view_config的文档,它应该类似于view_config。如果我将其更改为view_config,则/carlos不返回404。知道为什么吗?或者我还需要包括什么?
发布于 2017-01-23 16:39:22
在已粘贴的示例中,您使用的是没有任何包含权限的视图的forbidden_view_config,因此不会触发它。如果您使用的是notfound_view_config,那么至少要执行auth_view视图。
https://stackoverflow.com/questions/41797418
复制相似问题