最近的项目中需要采用python的MVC框架——django,相比Java的MVC框架而言虽然显得有些稚嫩,但是作为C家族的web框架已经是突破性的跨越了。
因为用惯了Java框架中的各种标签(特别是JSTL、OGNL等),所以在使用django时也希望可以用到类似的方法解决问题,起码来说,request、session等html的基础应用可以在页面中便捷的调用吧,可django的doc中并没有直接的说明,google百度了一下,多是提出此问题,但几乎没有正确的解答,郁闷了许久,决心在端午节休息时尽力尝试一下,终于有了解决方案,于是记下与大家分享一下吧。其实此调用的实现还是很简单的啊
试验环境:python2.6.6 + django1.31
1、单变量方式
xxx.py的某个方法中:
...
request.session['AAAA']='ABCD'
...
return render_to_response('yyy.html', {'session':request.session})
yyy.html:
...
{{ session.AAAA }}
...
2、 setter和getter方式 (Java的Bean,.net的Properties)
session_bean.py的定义:
class BeanTest():
user_id = None
def __init__(self):
self.data = []
def set_user_id(self, user_id):
self.user_id = user_id
def get_user_id(self):
return self.user_id
xxx.py的某个方法中:
from xxx.session_bean import BeanTest
...
bean = BeanTest()
bean.set_user_id("XXX123")
request.session['bean']=bean
...
return render_to_response('yyy.html', {'session':request.session})
yyy.html:
...
{{ session.bean.user_id }}
...