📅  最后修改于: 2020-10-19 03:29:56             🧑  作者: Mango
有时,Web应用程序可能需要具有多个级别的URL结构。 TurboGears可以遍历对象层次结构以找到可以处理您的请求的适当方法。
带有齿轮箱的“快速启动”项目在项目的lib文件夹中具有BaseController类。它可以作为“ Hello / hello / lib / base.py”获得。它充当所有子控制器的基类。为了在应用程序中添加URL的子级别,请设计一个从BaseController派生的名为BlogController的子类。
此BlogController具有两个控制器功能,index()和post()。两者都旨在公开一个模板,blog.html和post.html。
注意-这些模板放在子文件夹中-templates / blog
class BlogController(BaseController):
@expose('hello.templates.blog.blog')
def index(self):
return {}
@expose('hello.templates.blog.post')
def post(self):
from datetime import date
now = date.today().strftime("%d-%m-%y")
return {'date':now}
现在在RootController类(在root.py中)中声明此类的对象,如下所示:
class RootController(BaseController):
blog = BlogController()
此类的顶级URL的其他控制器功能将在前面的此类中提供。
输入URL http:// localhost:8080 / blog /时,它将被映射到BlogController类中的index()控制器函数。同样, http:// localhost:8080 / blog / post将调用post()函数。
blog.html和post.html的代码如下-
Blog.html
My Blog
post.html
My new post dated $date
输入URL http:// localhost:8080 / blog /时,将产生以下输出-
输入URL http:// localhost:8080 / blog / post时,将产生以下输出-