在应用程序之间共享对象

2024-04-25 18:01:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在两个GAE应用程序之间共享一个对象。第一个将拥有类的文件,并提供该对象的实例。第二个,使用给定的url,将访问第一个应用程序,获取对象,然后使用is。这真的有可能吗?如果是这样的话,我在下面的代码中没有做对什么?你知道吗

作为一个小的补充说明,我尝试了一个pickle解决方案,但这两个应用程序都要求在其名称空间中包含类,但我将使用其中的一些。我曾想过尝试使用继承来模仿Java的抽象类,但没有成功。如果你想看的话,我也可以提供代码。你知道吗

  • 我了解可能的服务条款,这不是问题。

  • 我知道云计算在那里,我不知道如何使用它,我会的 我宁愿避免成本,因为我是作为一个类项目开发这个。

  • 我看到了一些使用远程api的建议,但没有看到好的例子 更不用说允许两个应用程序交互了。

  • 我见过使用多个版本的解决方案,但每个学生都有 一个应用程序,它将是令人难以置信的混乱,但可能是可行的。

第一个。Py:

class SampleCritter():
    def move():
        ...
class Access(webapp2.RequestHandler):
    def post(self):
        CritStore(stats=self.request.body).put()

    def get(self):
        creature = CritStore.all().order('-date').get()
        if creature:
            stats = loads(creature.stats)
            return SampleCritter(stats)
        else:
            return SampleCritter() 

第二.py:

class Out(webapp2.RequestHandler):

    def post(self):
        url = self.request.POST['url']
        critter = urllib2.urlopen(url)
        critter.move()

Tags: 对象代码self应用程序urlmovedefstats
1条回答
网友
1楼 · 发布于 2024-04-25 18:01:04

简而言之,你不能在应用程序之间共享对象。你知道吗

更长的答案是,您的第一个应用程序可以使用基于HTTP的API公开对象。任何客户端都可以访问HTTP API,包括app2。你知道吗

app2必须通过httpapi操作对象。你将无法从app2调用critter.move(),但是如果你创建一个处理程序,比如说critter\move,你可以让处理程序调出相应的criter实例并对其调用move()。您还必须通过httppost传递所有适当的参数。你知道吗

相关问题 更多 >

    热门问题