现在的位置: 首页 > 综合 > 正文

Web.py对模板传值的一个技巧

2013年05月25日 ⁄ 综合 ⁄ 共 510字 ⁄ 字号 评论关闭
在web.py中, 通常是对模板这样进行传值的:
  1. commentlist = ....
  2. selecteditem = ....
  3. .....
  4. return render.index(commentlist=commentlist, selecteditem= selecteditem.....)

这样, 如果一个巨复杂的页面里, 有10, 20个变量要传入, 这个括号里的就长了...

其实完全可以这样:
  1. return render.index(**locals())

这样在模板里, 照常使用各种placeholder.

更深的了解:
python命令行中:

>>> def foo(arg):
...  x = 1
...  print locals()    

>>> foo(7)
{'arg': 7, 'x': 1}

>>> foo('bar')
{'arg': 'bar', 'x': 1}
在python中还有另一个, globals()

  1. if __name__ == "__main__":
  2.     for k, v in globals().items():
  3.         print k, "=", v

看看会得到什么?
还有就是, locals()是只读的, globals()没有这个限制.

抱歉!评论已关闭.