我有非常简单的python代码来访问Amazon简单队列服务。但我知道
builtins.TypeError
TypeError: get_queue() missing 1 required positional argument: 'self'
我的代码:
class CloudQueue(object):
conn = boto.sqs.connect_to_region("eu-west-1",
aws_access_key_id="abc",
aws_secret_access_key="abc")
@app.route('/get/<name>')
def get_queue(self, name):
if(name != None):
queue = self.conn.get_queue(str(name)) <--------- HERE
return conn.get_all_queues()
if __name__ == "__main__":
cq = CloudQueue()
app.debug = True
app.run()
不能将方法注册为路由;在decorator运行类时,该类仍在定义中,而您注册的只是未绑定的函数对象。因为它没有绑定到实例,所以没有
self
要传入。不要在这里使用类;为每个请求重新创建连接:
您可以将其设置为全局连接,但随后需要确保在第一个请求上重新创建连接(因此,即使使用WSGI服务器使用子进程处理请求时,它仍能继续工作):
仅当您确定
boto
连接对象是线程安全的时,才使用此选项。相关问题 更多 >
编程相关推荐