在我的金字塔应用程序中,例如,在tutorial / tutorial / pages / name.html下有几个静态html文件.如何编写为此可调用的视图?这行得通吗?
@view_config(renderer='view_page')
def view_page(request):
return {} # no values have to be passed to the template
然后在init.py文件中
config.add_route('view_page', 'tutorial:pages/{name}.html')
我需要在def view_page(request)函数中放入什么以专门调用该name.html文件,然后显示其内容?
解决方法:
金字塔的static_view是能够从目录中提供文件的视图.您真正没有解释的部分是这些静态页面的URL是什么样的.例如,如果它们都在一个公共前缀下,则可以使用static_view(选项1).如果不是,则必须在每页上创建一个视图并直接提供(选项2).
选项1
网址:
/foo/bar.html
/foo/baz/boo.html
静态视图:
config.add_static_view('/foo', 'tutorial:pages')
教程/页面层次结构:
tutorial/pages/bar.html
tutorial/pages/baz/boo.html
add_static_view实际上就像调用add_route(‘foo’,’/ foo / * subpath’)一样,并且提供了相对于tutorial:pages的子路径.
选项2
config.add_route('foo', '/foo')
config.add_route('bar', '/foo/bar')
@view_config(route_name='foo', renderer='tutorial:pages/foo.html.mako')
@view_config(route_name='bar', renderer='tutorial:pages/bar.html.mako')
def static_view(request):
return {}
注意.mako后缀以调用mako渲染器.默认情况下没有.html渲染器,但是您可以制作一个.
标签:url,filesystems,pyramid,python
来源: https://codeday.me/bug/20191031/1974643.html