Lassen Sie uns sagen, dass ich einen Code haben (mit CherryPy), der wie folgt aussieht:Helfen Sie mir, besser zu verstehen CherryPy PageHandlers
import cherrypy
class Names:
def index(self, name=None):
return "Names.index: " + str(name)
index.exposed = True
class Root:
def index(self):
return "This is the root"
index.exposed = True
if __name__ == "__main__":
root = Root()
root.names = Names()
cherrypy.tree.mount(root, '/')
cherrypy.engine.start()
cherrypy.engine.block()
Wenn ich die URL getroffen http://localhost:8080/names/, ich sehe Names.index: Keine Das ist in Ordnung. Das bedeutet, dass die Names() -Klasse aufgerufen wird.
Aber wenn ich zu http://localhost:8080/names/mark gehen, bekomme ich einen 404-Fehler statt der Names.index: mark ich erwartet hatte.
Das verwirrt mich, weil nach der PageHandler Dokumentation:
Wenn eine Anforderung verarbeitet wird, die URI in seine Bestandteile aufgespalten wird, und jede ist, um gegen die Knoten im Baum abgestimmt. Alle nachfolgenden Komponenten sind Komponenten des virtuellen Pfads und werden als Positionsargumente übergeben.
Lassen Sie uns jetzt sagen, dass ich die Namen() der Klasse ändern wie folgt aussehen:
class Names:
def index(self, name=None):
return "Names.index: " + str(name)
index.exposed = True
def name(self, name=None):
return "Names.name: " + str(name)
name.exposed = True
Jetzt kann ich zu http://localhost:8080/names/name/mark gehen, und ich sehe Names.name: mark.
Kann jemand erklären, was hier passiert?
Ausgezeichnet. Danke für die Information. –