如何将相同的JSON数据从一个类返回到另一个类?你知道吗
代码:
class Class1(webapp.RequestHandler):
def get(self):
random_id = str(uuid.uuid1())
time_now = int(time.time())
info = {
id: random_id,
now: time_now
}
json_info = json.dumps(info)
print json_info
self.response.write(info)
class Class2(webapp.RequestHandler):
def get(self):
getting_info = self.Class1()
getting_info_time = getting_info['now']
print getting_info_time
错误:
class1_info = self.Class1()
AttributeError: 'Class2' object has no attribute 'Class1'
编辑(更多详细信息):
我的应用程序的一部分需要整个JSON输出,而另一部分只需要info字典中的now
值。这两个类将使用来自info字典的相同的精确的数据。你知道吗
我一直在尝试获取now
输出,但只收到错误消息。你知道吗
尝试:
注:使用@Alex的答案(使用memcache的@snakecharmerb推荐)
代码:
from google.appengine.api import memcache
class Class1(webapp.RequestHandler):
def generate_data(self):
random_id = str(uuid.uuid1())
time_now = int(time.time()))
id_cached = memcache.add(key=random_id, value=random_id, time=600)
get_id_cached = memcache.get(key=random_id, value=random_id, time=600)
time_cached = memcache.add(key=time_now, value=time_now, time=600)
get_time_cached = memcache(key=time_now)
info = {
id: get_id_cached,
now: get_time_cached
}
json_info = json.dumps(info)
return json_info
def get(self):
self.response.write(generate_data())
class Class2(webapp.RequestHandler):
def get(self):
getting_info = Class1().generate_data()
print getting_info
结果:
{"id": "9d752605-a20d-11e7-8bfd-bfe81b332704", "time": "1506356501"}
{"id": "9b95e899-a20d-11e7-b137-bfe81b332704", "time": "1506356498"}
更多地了解您要做的事情会有所帮助,但是基于您的代码片段,这应该可以做到。你知道吗
另一个路由是让Class2继承Class1,另一个路由是在文件级将“perform”函数移到外部。没有更多的背景,很难给出更恰当的答案。你知道吗
编辑: 创建两个类都继承的“BaseHandler”似乎更合适。检查是否存在缓存ID,如果没有,则创建并添加。你知道吗
如果两个处理程序需要访问相同的数据,请将数据生成委托给函数。你知道吗
如果每个请求的数据都是新生成的,那么这种方法将起作用。如果您需要为每个请求返回相同的数据,那么您需要将其存储在数据存储、memcache或会话中,以便可以检索。你知道吗
相关问题 更多 >
编程相关推荐