📜  TurboGears-URL层次结构

📅  最后修改于: 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时,将产生以下输出-

博客文章