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

本文详细介绍了在Web.py中使用**locals()**和**globals()**简化模板传值的过程,通过实例演示如何在复杂页面中高效地传递多个变量,并解释了两者之间的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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()没有这个限制.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值