gpt4 book ai didi

python - Cherrypy 中的子页面和路由

转载 作者:太空宇宙 更新时间:2023-11-03 19:53:24 24 4
gpt4 key购买 nike

最近开始使用 CherryPy,我在创建子页面时遇到了困难。

我想要的结构是根页面 /、概述页面 /resources,然后是各个资源页面 /resources/my_resource。我可能会有其他页面 /my_page 以及 /my_page/my_page2

我首先尝试使用“主页”页面类来处理顶级页面,并使用用 cherrypy.popargs 装饰的“资源”类来处理资源页面。

我按如下方式启动 CherryPy:

cherrypy.tree.mount(Home(), '/', home_conf)
cherrypy.tree.mount(Resource(), '/resource/', resource_conf)
cherrypy.engine.start()
cherrypy.engine.block()

这用单独的资源页面替换了 /resource/ 页面。即它们是在 /my_resource/ 而不是 /resource/my_resource

提供的

我相信我可以使用 cp_dispatch 方法解决这个问题,但以不同的方式处理不同的 url 似乎很笨拙。有没有更好的方法来处理具有可变或静态结构的子页面?

最佳答案

找到了答案。 cp_dispatch 可以工作,但 CherryPy 中有一个构造可以精确地完成我们想要的操作。

ROUTES = cherrypy.dispatch.RoutesDispatcher()


ROUTES.connect(name='home', route="/my_route",
controller=MyController(), action='index',
conditions=dict(method=["GET"]))

然后我们只需要将 key 对 '/': {'request.dispatch': ROUTES} 添加到我们发送给 CherryPy 的配置中即可。

Controller 参数应该指向拥有返回所需内容的函数的任何容器类。 action 参数是该函数,它应该具有常规的 CherryPy 装饰器。

编辑另外值得注意的是,我认为这需要 routes 包,未包含或依赖于 CherryPy。

关于python - Cherrypy 中的子页面和路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59690080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com