我想要从其他App Engine Python类中使用的Utility类方法:
def parse_query_string_paramter(self, paramter, default=None):
if self.request.get(paramter):
# ...
我不确定如何从另一个类调用此方法时传递原始请求的上下文,如下所示:
import webapp2
from utilities import Utility
class Search(webapp2.RequestHandler):
def get(self):
utility = Utility()
search_query = utility.parse_query_string_paramter('q')
# ...
下面返回的错误对我来说很有意义,Pythonic解决方案虽然我不清楚从哪里开始:
File "~/utilities.py", line 112, in parse_query_string_paramter
if self.request.get(paramter):
AttributeError: 'NoneType' object has no attribute 'get'
更新
感谢Tim的解决方案,下面更新的代码现在正在为我工作:
def parse_query_string_paramter(self, context, paramter, default=None):
if context.request.get(paramter):
# ...
并从调用类传递self
,如下所示:
search_query = utility.parse_query_string_paramter(self, 'q')
答案 0 :(得分:1)
您需要将处理程序Search
的请求作为参数传递给实例化的Utility类,或者作为parse_query_string_paramter
方法的参数,它不能神奇地获取请求对象。 / p>
除此之外,不清楚为什么你会有一个Utility类,除非在请求期间由Utility实例持有某种状态,当你可能只需要一个函数时。