2010-06-02 2 views
-1

un projet webapp a beaucoup urlfaçon simple d'ajouter un autre cadre webapp à mon projet

et je dois changer ceci:

('/addTopic', AddTopic), 
('/delTopic', DeleteTopic), 
('/addPost', AddPost), 
('/delPost', DeletePost), 

à ceci:

('/tribes/addTopic', AddTopic), 
    ('/tribes/delTopic', DeleteTopic), 
    ('/tribes/addPost', AddPost), 
    ('/tribes/delPost', DeletePost), 

mais, si je l'ajoute à mon projet, je dois changer l'URL dans chaque fichier py ou fichier html,

dans django

il peut être ceci:

urlpatterns = patterns('', 
    (r'^articles/2003/$', 'news.views.special_case_2003')), 
) 

il est facile d'ajouter l'URL de 'nouvelles' à mon peoject,

mais ne webapp a cela?

grâce

mise à jour:

(1) ma principale url page est:

('/', MainPage), 
    ('/sign', Guestbook), 

(2) l'url d'un projet webapp que je veux ajouter est:

Je veux changer (1) à ceci:
('/', MainPage), 
('/sign', Guestbook), 

('/aa/', p2.MainPage), 
('/aa/logout', p2.LogoutPage), 
('/aa/login_response', p2.LoginHandler), 

donc je dois changer tant l'url/to/aa/ou changement/fermeture de session à/aa/dconnecter

dans le fichier py et le fichier html, qui est un travail dur

donc un moyen simple de le faire?

Répondre

0

Je pense que je comprends ce que vous essayez de faire. Le routage d'URL est assez flexible. Lorsque la requête arrive, l'URL est comparée à votre liste de gestionnaires pour déterminer quel script Python est appelé. Si vous utilisez webapp, l'URL est comparée à une deuxième liste d'expressions régulières pour déterminer quelle classe gère la requête.

Disons que votre app.yaml ressemble à ceci:

handlers: 

- url: /foo/.* 
    script: foo.py 

- url: /bar/.* 
    script: bar.py 

intérieur bar.py, vous avez ceci:

('/[^/]+/', MainPage), 
('/[^/]+/logout', LogoutPage), 
('/[^/]+/login_response', LoginHandler) 

Ces préfixes regex doit correspondre à des URL qui commencent par une barre oblique, sont suivi par un ou plusieurs caractères qui ne sont pas une barre oblique (n'importe quel nom de sous-répertoire), puis une autre barre oblique suivie du reste de l'URL.Si une requête arrive pour/bar/logout, app.yaml la fera correspondre à l'expression /bar/.* regex et la passera à bar.py, et bar.py la fera correspondre à/[^/] +/logout regex et passez-le à LogoutPage.

Si vous décidez que vous souhaitez que le sous-répertoire soit "baz" au lieu de "bar", vous pouvez modifier l'URL dans app.yaml et éventuellement laisser le reste intact.

+0

c'est cool ~~~~~~ – zjm1126

0

Je ne suis pas sûr de comprendre ce que vous demandez. Les modèles d'URL dans webapp sont des expressions régulières, et ils sont évalués dans l'ordre, d'abord pour durer. Vous pouvez inclure des groupes capturés dans la regex, et ils seront extraits et transmis en tant qu'arguments au gestionnaire. Par exemple:

('/articles/2003/(.*)', Articles2003), 
('/articles/(\d+)/(.*)', Articles), 
Questions connexes