0

在 web.py 中,我如何定义例如到example.com/x以转到名为x.html的模板文件夹内的文件?

对 web.py 非常陌生,想知道如何做到这一点!他们的文档并没有向我解释任何事情。

4

3 回答 3

1

根据这个页面,你可以这样做:

urls = (
    '/(.+)', 'your_handler_class'
)

class your_handler_class:
    def GET(self, page):
        print web.template.render('%s.html' % page)
于 2013-09-06T02:26:38.003 回答
1

这是 web.py 中的基本 URL 处理。

对于您的示例,请执行以下操作:

urls = (
    "/x", "x"
)

这假设您已经为模板定义了一个目录并创建了该目录一层(或任何地方),例如如下:

render = web.template.render('templates/')

然后,web.py 将在您呈现页面时在模板目录中查找 x.html,通常使用 GET 处理程序,如下所示:

class x:
    def GET(self):
        return render.x()


在这种情况下,您的类和模板都被命名为 x,但这并不一定是这样。

例如,您可以将模板命名为“xyz.html”并使用 调用它return render.xyz(),但仍将您的类命名为“x”并将其映射到 /x

于 2013-09-16T03:55:56.350 回答
1

只需使用getattr传递它render和由 url 正则表达式捕获的页面名称。

urls = (
  '/(.+)?', 'PageController'
)

render = web.template.render('templates/')

class PageController:

    def GET(self, page='index'):
        try:
            return getattr(render, page)()
        except AttributeError:
            raise web.notfound()
于 2013-10-06T19:44:54.653 回答