在Google App Engine中从包含的文件中使用response.out.write

2 投票
2 回答
792 浏览
提问于 2025-04-16 14:28

我觉得这个问题其实很简单,只是我找不到相关的详细说明。

我正在开发一个GAE应用。

在我的主文件里,有几个请求处理器,比如:

class Query(webapp.RequestHandler):
    def post(self):
        queryDOI = cgi.escape(self.request.get('doiortitle'))
        import queryCosine
        self.response.out.write(queryCosine.cosine(queryDOI))

在那个处理器里,我从一个叫queryCosine.py的脚本中导入了一些东西,这个脚本负责所有的工作。如果queryCosine脚本里的某个地方出错了,我想打印一条消息或者进行重定向。

在queryCosine.py里面,有一个普通的Python函数,所以显然像这样做

self.response.out.write("Done")

是行不通的。我应该用什么来代替self,或者我需要在我引入的文件中包含什么?我试过用Query.self.response.out.write,但那也不行。

2 个回答

2

一个更好、更灵活的方法是让你的 queryCosine.cosine 函数在出错时抛出一个异常。这样,你的处理方法就可以根据返回值或异常来输出合适的响应。这样做可以避免把计算的代码和托管它的网页应用程序紧密绑定在一起。

1

把它传递给函数。

主文件:

import second

 ...
  second.somefunction(self.response.out.write)

second.py:

def somefunction(output):
  output('Done')

撰写回答