学习Python的学习金字塔,对@view_config装饰器感到困惑。它应该直接可用吗?
我还在学习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()。