最初,用户会看到一个表单,他会输入一些值并点击提交。单击提交后,将调用类One,该类将呈现带有结果的jinja2模板。
class One(webapp2.RequestHandler):
def post(self):
# It gets the user's input from
# an HTML form
area = self.request.get('area')
# It then passes area in a
# different class (CalculateArea)
# for some calculations
calculations = CalculateArea()
results = calculations.distance(area)
values = {
'results': results
}
template = JINJA_ENVIRONMENT.get_template('results.html')
self.response.write(template.render(values))
在渲染页面上有一个新按钮,点击它时会调用第二类。
class Two():
def get(self):
# Here I want to use area and results from class One
distance = area
new = results
我要做的是在第二课中使用变量区域和结果。
答案 0 :(得分:2)
有多种方法可以完成这项工作。
保存到数据存储区并在需要时检索。 但是,在两页上频繁请求可能会降低系统的性能。
将会话所需的值保存。看看这里
Google App Engine - Getting Sessions working with Python 2.7
http://webapp-improved.appspot.com/api/webapp2_extras/sessions.html
希望它有所帮助。
答案 1 :(得分:0)
我能想到的两个选项
1)由于您已经将结果传回页面,您还可以将“区域”传递回页面,然后点击提交按钮会将结果和区域传递回第二类
2)使用memcache -
from google.appengine.api import memcache
在Class One()中,添加以下代码(在获得结果后)
memcache.add(area, results)
在Class Two()中,添加以下代码。请注意,这意味着您在调用Class Two时必须再次传递区域
memcache.get(area)