이전에 명확하지 않았기 때문에 제 질문을 편집했습니다.webapp2 tuple (regex, handler)를 사용하여 핸들러를 요청하십시오.
코드 1 작동
class AtSeaHandler(webapp2.RequestHandler):
def get(self, id=None):
boat = ndb.Key(urlsafe=id).get()
boat_dict = boat.to_dict()
boat_dict['self'] = "/boats/" + id
self.response.write(json.dumps(boat_dict)
app = webapp2.WSGIApplication([
('/boats/([\w-]+)', AtSeaHandler)
], debug=True)
코드 2 (작동하지 않음)
class AtSeaHandler(webapp2.RequestHandler):
def get(self, id=None):
boat = ndb.Key(urlsafe=id).get()
boat_dict = boat.to_dict()
boat_dict['self'] = "/boats/" + id
self.response.write(json.dumps(boat_dict)
app = webapp2.WSGIApplication(
('/boats/([\w-]+)/at_sea', AtSeaHandler)
], debug=True)
코드 (2)는 코드 1 코드 1 및 코드 사이의 유일한 차이의 사본은 2 코드 1은 ('/ 보트/([\ w -] +)', AtSeaHandler) 코드 2는 ('/ 보트/([\ w -] +)/at_sea', AtSeaHandler)입니다. 그런 다음 코드 1을 주석 처리합니다.
코드 1이 작동합니다. 코드 2는/at_sea가 추가 된 상태에서 작동하지 않습니다. 나는 우편 배달부에 http://localhost:8080/boats/aghkZXZ-Tm9uZXIRCxIEQm9hdBiAgICAgPCLCww을 입력하고 코드 1이 작동하는지 확인합니다. 또한 코드 2를 테스트하고 작동하지 않는지 확인합니다.
이 기능을 사용하려면 어떻게해야합니까? boat
엔터티 키를 ([\ w -] +)에 전달하면 I def get(self, id=None):
id
이 보트 엔터티 키가됩니다. at_sea에 get()에서 인수가 필요합니까? get (self, id = none)에서 get (self, id = none, argument3 = none) get()을 변경해야합니까? C++에서 오면서, 3 인자가있는 함수 호출과 같다고 생각합니다. 3 인자가있는 함수 헤더가 필요합니다. 내가 완전히 오해하고 있니?
documentation 내 질문에 대답하는 방법을 이해하는 도움이되지 않는다 ...
그래, 내 첫번째 의혹은 사실이다 : HTTP를 시도 : // localhost를 : 8080/보트/aghkZXZ-Tm9uZXIRCxIEQm9hdBiAgICAgPCLCww이/at_sea 새로운 패턴을 –