金字塔 1.8 forbidden_view_config return 404
Pyramid 1.8 forbidden_view_config return 404
我有一个使用 Pyramid 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 Not Found The resource could not be found.
/carlos
我一直在查看有关 forbidden_view_config 的文档,它应该类似于 view_config。如果我将其更改为 view_config /carlos 则不会 return 404。知道为什么吗?或者我还需要包括什么?
在您粘贴的示例中,您使用的 forbidden_view_config
没有任何包含权限的视图,因此它不会被触发。相反,如果您使用 notfound_view_config
,您至少会执行 auth_view
视图。
我有一个使用 Pyramid 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 Not Found The resource could not be found.
/carlos
我一直在查看有关 forbidden_view_config 的文档,它应该类似于 view_config。如果我将其更改为 view_config /carlos 则不会 return 404。知道为什么吗?或者我还需要包括什么?
在您粘贴的示例中,您使用的 forbidden_view_config
没有任何包含权限的视图,因此它不会被触发。相反,如果您使用 notfound_view_config
,您至少会执行 auth_view
视图。