Python 金字塔1.8禁止查看配置返回404
我有一个使用Pyramid 1.8的基本应用程序,我希望有一个禁止的视图配置来挑战客户端 在my views.py中,我有:Python 金字塔1.8禁止查看配置返回404,python,pyramid,basic-authentication,Python,Pyramid,Basic Authentication,我有一个使用Pyramid 1.8的基本应用程序,我希望有一个禁止的视图配置来挑战客户端 在my 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(r
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
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()
在我的init.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
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()
但当我去的时候,我得到:
404找不到资源找不到
/卡洛斯
我一直在看关于禁用的视图配置的文档,它应该类似于视图配置。如果我将其更改为view\u config/carlos,则不会返回404。知道为什么吗?或者我还需要包括什么?在粘贴的示例中,您使用的是
禁止的\u视图\u配置
,没有任何包含权限的视图,因此不会触发。相反,如果您使用了notfound\u view\u config
,您至少会执行auth\u view
视图。您能进一步解释一下吗?如何向视图添加权限?或者你能告诉我去哪里吗?当在你的应用程序中引发httpoblimited
异常时,会执行禁止视图,你可以手动执行,也可以使用pyramid的身份验证系统根据查看权限自动引发异常@view\u config(permission=…)
。金字塔的sqlalchemy+url调度教程对此进行了大量介绍,如果您还没有读过,那么值得一读。