首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CherryPy中的类CodeIgniter路由

CherryPy中的类CodeIgniter路由
EN

Stack Overflow用户
提问于 2011-04-12 13:05:56
回答 1查看 471关注 0票数 0

我来自PHP框架,我喜欢它们的一点是路由在某种程度上是为我处理的:我可以将我的所有控制器放在controllers目录中,当用户访问http://www.example.com/posts/delete/12时,它会自动调用Posts::delete(12)。我意识到我可以在CherryPy中使用路由,但是我对文档的局限性感到有点恼火--没有任何关于我应该如何格式化我的类名的内容(我应该称之为PostsController()吗?它甚至关心吗?),使用routes.mapper.connect()routes.connect(),以及当它调用默认路由(/:controller/:action/:id)时会发生什么。

我真的很想使用Python,但我不想定义每一条路由。有没有人可以给我介绍一下Python web-framework newb教程,告诉我如何使用路由,或者解释一下如何构建一个CherryPy web应用程序,这样我就可以列出几条路径,比如

代码语言:javascript
复制
d = cherrypy.dispatch.RoutesDispatcher()
d.mapper.connect('main', '/:controller/:action', controller='root', action='index')
d.mapper.connect('main', '/:controller/:action/:id', controller='root', action='index')

它会帮我处理吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-21 17:58:56

简单的方法是使用cherrypy.tree.mount挂载控制器对象。控制器的结构将为您提供基本的路由。

例如:

代码语言:javascript
复制
import cherrypy

class AppRoot:
    def index(self):
        return "App root's index"
    index.exposed = True

    controller1 = Controller1Class()
    # controller2 = Controller2Class(), etc.

class Controller1Class:

     def index(self):
         return "Controller 1's index"
     index.exposed = True

     def action1(self, id):
         return "You passed %s to controller1's action1" % id      
     action1.exposed = True

     # def action2(self, id): etc...

# ... the rest of the config stuff ...

cherrypy.tree.mount(AppRoot(), '/')  

# ... the rest of the startup stuff....

调用以下URI将调用以下方法:

  • http://mysite.com/index AppRoot::index()
  • http://mysite.com/controller1 Controller1Class::index()
  • http://mysite.com/controller1/action1 Controller1Class::action1()
  • http://mysite.com/controller1/action1/40 Controller1Class::action1("40")

->

另请参阅:

  • http://mark.biek.org/blog/2009/07/basic-routing-with-cherrypy/
  • http://www.cherrypy.org/wiki/PageHandlers
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5630639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档