2010-05-28 6 views
1

J'utilise le framework Tornado (Python). J'ai les URL sluggable fonctionnant. Mais j'ai 3 entrées différentes dans le répartiteur d'URL. Je me demandais si quelqu'un pouvait m'aider à le transformer en une seule ligne.Essayer de trouver le répartiteur d'URL pour les URL sluggale comme stackoverflow

C'est ce que j'ai:

(r"/post/([0-9]+)/[a-zA-Z0-9\-]+", SpotHandler), 
(r"/post/([0-9]+)/", SpotHandler), 
(r"/post/([0-9]+)", SpotHandler), 

Je veux donc que les URL suivantes vont tous au même endroit.

http://domain.com/post/14

http://domain.com/post/14/

http://domain.com/post/14/any-text-it-doesnt-matter-what-it-is

Répondre

1

(r "/ post/([0-9] +) /? [A-zA-Z _] *", SpotHandler),

"?" signifie que la chose précédente peut être là mais ne doit pas être. "*" signifie zéro ou plus

+1

cela aussi attraper urls comme http://domain.com/post/14something –

+0

Great, merci beaucoup! – TylerW

+0

@TylerW @mawimawi @ zed_0xff Qu'en est-il de cette URL: 'http: // domain.com/post/14something' ou' http: // domain.com/post/14/quelque chose/'~~ @TylerW qu'en est-il si c'est censé être 'http: // domain.com/post/14/quelque chose 'et ils goto' http: // domain.com/post/14/otherthing'? Je suppose que ce n'est pas un problème de domaine d'affaires ici ... – jcolebrand

2
r"/post/([0-9]+)(?:/[a-zA-Z_-]+|/)?" 
Questions connexes