Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向我的项目添加另一个webapp框架的简单方法_Python_Google App Engine_Url_Templates - Fatal编程技术网

Python 向我的项目添加另一个webapp框架的简单方法

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

一个webapp项目有多个url

我必须改变这一点:

('/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)