学习Python的学习金字塔,对@view_config装饰器感到困惑。它应该直接可用吗?

4 投票
1 回答
814 浏览
提问于 2025-04-16 16:45

我还在学习Pyramid框架,现在我正在尝试了解如何使用装饰器。下面是我测试的视图可调用对象的代码。

from pyramid.response import Response
from pyramid.view import view_config
from pyramid.renderers import render_to_response

def my_blog(request):
    return {'project':'tricky'}

@view_config( renderer='templates/foo.pt' )
def foo_blog(request):
    return {'name':'tricky'}

根据我对view_config装饰器的理解,它可以用来设置应用程序的配置,而不需要在配置文件中直接设置。在这个例子中,我把渲染器设置为templates/foo.pt。但这样做总是失败。

不过,如果我在配置文件(init.py)中这样设置渲染器:

config.add_route( 'foo_blog' , '/blog/{foo}' ,  view='tricky.views.Blog.blog.foo_blog' renderer='tricky:templates/mytemplate.pt' )

那就可以正常工作了。

我是不是做错了什么,导致我无法使用这个装饰器呢?谢谢!

1 个回答

7

为了让通过 @view_config 添加的配置生效,你需要在某个时刻调用 config.scan()。

撰写回答