1
我有一个基本的应用程序使用金字塔1.8,我想有一个forbidden_view_config挑战客户端。金字塔1.8 forbidden_view_config返回404
在我的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未找到资源找不到。
/卡洛斯
我一直在看有关forbidden_view_config的文件,它应该像view_config。如果我将其更改为view_config/carlos不会返回404.任何想法为什么?或者我还需要包括什么?
你能再解释一下吗?如何为视图添加权限?或者你能指引我到什么地方? – QLands
当您的应用程序中出现HTTPForbidden异常时,您可以手动执行此功能,或者您可以使用金字塔的身份验证系统根据视图权限'@view_config(permission = ..)'自动生成异常。金字塔的sqlalchemy + url调度教程进入这个相当数量,值得一读,如果你还没有。 –