访问另一个类的变量

时间:2016-03-22 01:11:19

标签: python google-app-engine jinja2 webapp2

最初,用户会看到一个表单,他会输入一些值并点击提交。单击提交后,将调用类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

我要做的是在第二课中使用变量区域结果

2 个答案:

答案 0 :(得分:2)

有多种方法可以完成这项工作。

  1. 保存到数据存储区并在需要时检索。 但是,在两页上频繁请求可能会降低系统的性能。

  2. 将会话所需的值保存。看看这里

    希望它有所帮助。

答案 1 :(得分:0)

我能想到的两个选项

1)由于您已经将结果传回页面,您还可以将“区域”传递回页面,然后点击提交按钮会将结果和区域传递回第二类

2)使用memcache -

from google.appengine.api import memcache

在Class One()中,添加以下代码(在获得结果后)

memcache.add(area, results)

在Class Two()中,添加以下代码。请注意,这意味着您在调用Class Two时必须再次传递区域

memcache.get(area)