2009-06-18 5 views
3

Ist es möglich, ein URL-Muster (regulärer Ausdruck oder ein anderes Mapping) einem einzelnen RequestHandler zuzuordnen? Wenn ja, wie kann ich das erreichen?URL-Muster einem einzelnen RequestHandler in einer WSGIApplication zuordnen

Im Idealfall würde Ich mag so etwas tun:

application=WSGIApplication([('/*',MyRequestHandler),]) 

Damit MyRequestHandler kümmert sich um alle gestellten Anträge. Beachten Sie, dass ich an einer Proof-of-Concept-App arbeite, in der ich per Definition nicht alle URLs kenne, die in die Domain kommen. Beachten Sie auch, dass ich dies in Google App Engine mache, wenn das wichtig ist.

Antwort

8

Das Muster, das Sie wird gut funktionieren beschreiben. Außerdem werden alle Gruppen in dem von Ihnen angegebenen regulären Ausdruck als Argumente an die Handler-Methoden übergeben (get, post usw.). Zum Beispiel:

class MyRequestHandler(webapp.RequestHandler): 
    def get(self, date, id): 
    # Do stuff. Note that date and id are both strings, even if the groups are numeric. 

application = WSGIApplication([('/(\d{4}-\d{2}-\d{2})/(\d+)', MyRequestHandler)]) 

Im obigen Beispiel sind die beiden Gruppen (ein Datum und eine id) sind ausgebrochen und als Argumente an Ihre Handler-Funktionen übergeben.

Verwandte Themen