在 web.py 中,我如何定义例如到example.com/x以转到名为x.html的模板文件夹内的文件?
对 web.py 非常陌生,想知道如何做到这一点!他们的文档并没有向我解释任何事情。
根据这个页面,你可以这样做:
urls = (
'/(.+)', 'your_handler_class'
)
class your_handler_class:
def GET(self, page):
print web.template.render('%s.html' % page)
这是 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
只需使用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()