Redigiert meine Frage, weil es vorher nicht sehr klar war.Anfrage Handler mit Webapp2 Tupel (Regex, Handler)
Code 1 Arbeits
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)
Code 2 (nicht funktioniert)
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)
Code 2 ist eine Kopie des Codes 1. Der einzige Unterschied zwischen Code 1 und Code 2 Code 1 ist ('/ boats/([\ w -] +)', AtSeaHandler) gegen Code 2 ist ('/ boats/([\ w -] +)/at_sea', AtSeaHandler). Dann kommentiere ich Code 1.
Code 1 funktioniert. Code 2 funktioniert nicht mit dem/at_sea hinzugefügt. Ich habe http://localhost:8080/boats/aghkZXZ-Tm9uZXIRCxIEQm9hdBiAgICAgPCLCww im Postboten eingegeben und überprüft Code 1 funktioniert. Auch Code 2 getestet und überprüft, dass es nicht funktioniert.
Was muss ich tun, damit dies funktioniert? Wenn ich einen boat
Entity Key an ([\ w -] +) übergeben habe und ich def get(self, id=None):
id
den Boot Entity Key gegeben habe. Braucht at_sea ein Argument in get()? Muss ich die get() von get (self, id = none) ändern, um zu erhalten (self, id = none, argument3 = keine)? Aus C++ kommend, denke ich, dass es wie ein Funktionsaufruf mit 3 Argumenten einen Funktionskopf mit 3 Parametern benötigt, um diese Argumente zu halten. Verarsche ich die Dinge total?
Die documentation hilft mir nicht verstehen, wie meine Frage zu beantworten ...
yup, mein erster Verdacht ist wahr: versuchen http: // localhost: 8080/Boote/aghkZXZ-Tm9uZXIRCxIEQm9hdBiAgICAgPCLCww/at_sea das neue Muster –