2009-06-18 10 views
3

Est-il possible de mapper un modèle d'URL (expression régulière ou un autre mappage) à un seul RequestHandler? Si oui, comment puis-je accomplir cela?Mappage du modèle d'URL à un seul RequestHandler dans une WSGIApplication

Idéalement, je voudrais faire quelque chose comme ceci:

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

Pour que MyRequestHandler gère toutes les demandes. Notez que je travaille sur une application de preuve de concept où, par définition, je ne connaîtrai pas toutes les URL qui viendront dans le domaine. Notez également que je fais cela sur Google App Engine si cela est important.

Répondre

8

Le modèle que vous décrivez fonctionnera très bien. De plus, tous les groupes de l'expression régulière que vous spécifiez seront passés en arguments aux méthodes du gestionnaire (get, post, etc.). Par exemple:

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)]) 

Dans l'exemple ci-dessus, les deux groupes (une date et un identifiant) sont ventilés et passés comme arguments à vos fonctions de gestionnaire.

Questions connexes