2009-11-15 7 views

Répondre

8

Les groupes d'expressions régulières dans app.yaml ne sont pas transmis directement aux applications Web. Mais si vous utilisez le framework webapp, les groupes dans ses expressions régulières de routage sont transmis aux webapps. Par exemple:

app.yaml:

- url: /.* 
    script: boats.py 

boats.py:

class BoatsHandler(webapp.RequestHandler): 
    def get(self, state, city): 
    # Do something with state and city. They're strings, not ints, remember! 

application = webapp.WSGIApplication([ 
    ('/boats/([^/]+)/([^/]+)', BoatsHandler), 
]) 

def main(): 
    run_wsgi_app(application) 

if __name__ == '__main__': 
    main() 
+0

@Nick: J'ai ajouté des commentaires à ma réponse: J'ai juste oublié de mentionner la configuration de l'application webapp avec les regex. – jldupont

+0

Réponse solide nick, bonne direction dldupont, c'est exactement ce que je cherchais, merci. – Travis

1
- url: /boats/.* 
    script: boats.py 

et vous récupérez le reste de l'URL par le requestobject.

class BoatsHandler(webapp.RequestHandler): 
    def get(self, url_fragment=None): 
    #do something with url_fragment 
+0

Ok, cool, comment pourrais-je obtenir les variables hors dudit objet de requête? (dans boats.py je suppose) – Travis

+0

oui dans boats.py – jldupont

+0

Ceci est incorrect - regexes dans app.yaml ne sont pas passées aux applications webapp. –

Questions connexes