【问题标题】:Access another class's variable访问另一个类的变量
【发布时间】:2016-03-22 01:11:19
【问题描述】:

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

我要做的是在第二类中使用变量arearesults

【问题讨论】:

    标签: python google-app-engine jinja2 webapp2


    【解决方案1】:

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

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

    2. 将您需要的值保存到会话中。看看这里

      希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我能想到的2个选项

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

      2) 使用内存缓存 -

      from google.appengine.api import memcache
      

      在 Class One() 中,添加以下代码(就在你得到结果之后)

      memcache.add(area, results)
      

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

      memcache.get(area)
      

      【讨论】:

        猜你喜欢
        • 2011-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        相关资源
        最近更新 更多