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調度教程進入這個相當數量,值得一讀,如果你還沒有。 –