Python 向我的项目添加另一个webapp框架的简单方法
一个webapp项目有多个url 我必须改变这一点:Python 向我的项目添加另一个webapp框架的简单方法,python,google-app-engine,url,templates,Python,Google App Engine,Url,Templates,一个webapp项目有多个url 我必须改变这一点: ('/addTopic', AddTopic), ('/delTopic', DeleteTopic), ('/addPost', AddPost), ('/delPost', DeletePost), 为此: ('/tribes/addTopic', AddTopic), ('/tribes/delTopic', DeleteTopic), ('/tribes/addPost', AddPost), ('/tribes/del
('/addTopic', AddTopic),
('/delTopic', DeleteTopic),
('/addPost', AddPost),
('/delPost', DeletePost),
为此:
('/tribes/addTopic', AddTopic),
('/tribes/delTopic', DeleteTopic),
('/tribes/addPost', AddPost),
('/tribes/delPost', DeletePost),
但是,如果我将其添加到我的项目中,我必须更改每个py文件或html文件中的url
在django
可以是这样的:
urlpatterns = patterns('',
(r'^articles/2003/$', 'news.views.special_case_2003')),
)
将“新闻”的url添加到我的peoject很容易
但是webapp有这个功能吗
谢谢
更新:
(1) 我的主页url是:
('/', MainPage),
('/sign', Guestbook),
(2) 我要添加的webapp项目的url为:
('/', MainPage),
('/logout', LogoutPage),
('/login_response', LoginHandler),
我想把(1)改为:
因此,我必须将这么多url更改为/to/aa/,或者将/logout更改为/aa/logout
在py文件和html文件中,这是一项艰巨的工作
有什么简单的方法可以做到这一点吗?我不太清楚你在问什么。webapp中的URL模式是正则表达式,它们的计算顺序是从前到后。您可以在正则表达式中包含捕获的组,它们将被提取并作为参数传递给处理程序。例如:
('/articles/2003/(.*)', Articles2003),
('/articles/(\d+)/(.*)', Articles),
我想我明白你想做什么。URL路由非常灵活。当请求传入时,URL将与处理程序列表相匹配,以确定调用哪个python脚本。如果您使用的是webapp,则URL将与第二个正则表达式列表匹配,以确定哪个类处理该请求 假设您的app.yaml如下所示:
handlers:
- url: /foo/.*
script: foo.py
- url: /bar/.*
script: bar.py
在bar.py中,您有:
('/[^/]+/', MainPage),
('/[^/]+/logout', LogoutPage),
('/[^/]+/login_response', LoginHandler)
这些正则表达式前缀应与以斜杠开头的URL匹配,后跟一个或多个非斜杠字符(任何子目录名称),然后在URL的其余部分后跟另一个斜杠
如果请求进入/bar/logout,app.yaml会将其与/bar/*正则表达式匹配并传递给bar.py,bar.py会将其与/[^/]+/logout正则表达式匹配并传递给LogoutPage
如果您决定将子目录改为“baz”而不是“bar”,则可以在app.yaml中更改url,并可能保留其余部分不变
('/[^/]+/', MainPage),
('/[^/]+/logout', LogoutPage),
('/[^/]+/login_response', LoginHandler)