Pyramid/Pylons Framework - 关于我如何使用“helpers”的意见完成某些任务
在金字塔中,我创建了一个类似于塔中的“助手”功能。
我的 helpers.py 文件中的一个特定函数如下所示:
from pyramid.renderers import render_to_response
def createBlog():
## lots of code here ##
return render_to_response('blog.mako', {'xyz':xyz})
然后在我的其他应用程序中,我可以导入助手并在我的模板中执行类似以下操作:
${h.createBlog()}
这会在我的页面上创建一个博客。但我只是想知道这是使用助手创建“模块”样式插件的好方法,我可以在项目中的任何地方轻松使用它。或者这个技术有什么我还没有真正想到的缺陷吗?
谢谢!
In pyramid, I have created a 'helpers' functionality similar to that in pylons.
one particular function in my helpers.py file is like this:
from pyramid.renderers import render_to_response
def createBlog():
## lots of code here ##
return render_to_response('blog.mako', {'xyz':xyz})
And then in my other applications I can import helpers and do something like the following in my templates:
${h.createBlog()}
which creates a blog on my page. But I am just wondering is this a good way of using helpers to create "module" style plugins that I can easily use anywhere in my projects. Or are there any flaws to this technique which I haven't really thought of yet?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这实际上取决于您想要在全球范围内公开多少内容。显然,您放入
h
的任何内容都可以在整个应用程序中使用,而您可以仅在您希望它位于的视图中返回createBlog
函数。一个鲜为人知的花絮是如果您使用基于类的视图,则实际的类实例在视图中可作为view
全局变量使用。例如:现在在您的模板中,您可以使用
${view.createBlog()}
调用渲染您的博客。It really depends on how much stuff you want to expose globally. Obviously anything you put into
h
is available throughout the application, whereas you could return thecreateBlog
function just in the views you want it to be in. One little-known tidbit is that if you use class-based views, the actual class instance is available in the view as theview
global variable. For example:Now in your template you can call render your blog using
${view.createBlog()}
.