客户端应用程序将使用GET方法向http://server/user/USER_ID/history发送消息,以便接收包含用户使用历史记录的JSON回复。 (可能是听过,购买等歌曲的列表)
我可以通过以下代码段处理http://server/user/USER_ID/:
application = webapp.WSGIApplication(
[('/', BrowserTests),
('/user/([^/]+)?', UserHandler),
], debug=True)
我通过以下方式在UserHandler中使用:
user_id = str(urllib.unquote(resource))
因此我可以为http://server/user/USER_ID开展工作。但是我怎么能更进一步消耗历史?
我尝试查看StackOverflow和文档,但我想我不知道要求接收答案的确切内容。
答案 0 :(得分:4)
你可以选择这样的东西:
application = webapp.WSGIApplication([
('/user/([^/]+)/([^/]+)', UserHandler),
], debug=True)
class UserHandler(webapp.RequestHandler):
def get(self, user_id, action_to_consume):
self.response.out.write("Action %s" % action_to_consume)#Should print History
答案 1 :(得分:1)
添加第二个参数
application = webapp.WSGIApplication(
[('/', BrowserTests),
('/user/([^/]+)/([^/]+)$', UserHandler),
], debug=True)
class UserHandler(webapp.RequestHandler):
def get(self, userid, history):
答案 2 :(得分:0)
或者@Jose和@ systempuntoout的答案,如果你想为每个动作分别设置一个处理程序:
application = webapp.WSGIApplication([
('/', BrowserTests),
('/user/([^/]+)', UserHandler),
('/user/([^/]+)/history', HistoryHandler),
], debug=True)
class UserHandler(webapp.RequestHandler):
def get(self, userid):
pass
class HistoryHandler(webapp.RequestHandler):
def get(self, userid):
pass