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

来源:互联网 发布:sai2 mac中文版下载 编辑:程序博客网 时间:2024/05/02 02:48
在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()没有这个限制.