python/pylons - 模板的多个控制器
我在Python/Pylons项目中有一个主页,其中有多个不同的块(例如新闻/演示/(注册|私人区域)/...)。
我的想法是每个块应该在单独的控制器中生成。 如何在主页控制器中调用另一个控制器方法?
I have a main page in Python/Pylons project, which have multiple different blocks (e.g. news/demo/(registration|private zone)/...).
My thought is that each block should be generated in a separate controller.
How can I call another controller method in a main page controller?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你想做的是 HMVC。我不确定 Pylons 是否可以轻松实现开箱即用,因为它是 MVC。
如果您的代码在多个控制器中重复,您可以将部分代码移出控制器(在模型或其他模块中)。
另外,如果您使用 Mako 模板,则可以通过继承 http://www 重用部分模板.makotemplates.org/docs/inheritance.html 并使用 defs http://www .makotemplates.org/docs/defs.html。
What you want to do is HMVC. I'm not sure it is easily doable out of the box with Pylons, since it's MVC.
If you have code that is repeated in multiple controllers, you could move some of this code out of the controller (in the models, or another module).
Also, if you are using Mako templates, you can reuse parts of templates by using inheritance http://www.makotemplates.org/docs/inheritance.html and by using defs http://www.makotemplates.org/docs/defs.html.
这可能是您开始将代码块移动到库函数、Pylons 项目的
/lib
部分的地方。 “由单独的控制器生成”可能太过分了 - 您只需不要重复自己即可。尝试使用库函数来确保正确的数据可用,然后使用 Mako 的继承和命名空间功能。This is probably where you start moving chunks of code to library functions, to the
/lib
part of your Pylons project. "Generated by a separate controller" is probably going too far - you merely need to not repeat yourself. Try using library functions to make sure that the correct data is available, then use Mako's inheritance and namespace features.