Seite 1 von 1

Google App und CherryPy Frage

Verfasst: Donnerstag 18. September 2008, 14:23
von debian75
kann man mit dieser kombination hinbekommen, dass /url klassen darstellen? ich hatte mal das beispiel von gerold gemacht und das sah dann so aus:

Code: Alles auswählen

# Anwendung zusammensetzen
root = Root()
root.alpha = apha()
root.beta = beta()

def main():
    cherrypy.quickstart(root, config = INI_FILENAME)

if __name__ == "__main__":
    main()
damit wurde dann bei :

foobar.com root ausgeführt
foobar.com/alpha halt alpha ausgeführt etc...

geht das mit Google App? Weil ich bekomme die Meldung

"Root' object is not callable "

hier mein code:

Code: Alles auswählen

root = Root()
root.alpha = apha()
root.beta = beta()

def main():
    application = cherrypy.quickstart(root())
    wsgiref.handlers.CGIHandler().run(application)
    #application = cherrypy.Application(Root())
    #wsgiref.handlers.CGIHandler().run(application)

if __name__ == "__main__":
    main()

Verfasst: Donnerstag 18. September 2008, 14:27
von Leonidas
Ich würde da eher einen NameError vermuten, weil du Root nutzt ohne es zu importieren.

Verfasst: Donnerstag 18. September 2008, 16:37
von EnTeQuAk
Ich vermute das nicht, sondern sehe:

Code: Alles auswählen

root = Root()
root.alpha = apha()
root.beta = beta()

def main():
    application = cherrypy.quickstart(root())
    wsgiref.handlers.CGIHandler().run(application)
    #application = cherrypy.Application(Root())
    #wsgiref.handlers.CGIHandler().run(application)

if __name__ == "__main__":
    main()
Ändere den Aufruf `application = cherrypy.quickstart(root()))` in `...quickstart(root)` – du Rufst sonst die Klasse `Root` auf, was `Root.__call__` aufruft, was erstmal definiert werden muss – das ist es nicht, ergo: ``"Root' object is not callable " ``

Wenn du die exakte Zeilennummer des Tracebacks anschaust, könnte das sogar klappen, das er die Zeile anzeigt ;)

Gruß, Christopher.

Verfasst: Donnerstag 18. September 2008, 21:22
von debian75
gracias leute :)