多个文件中的Google App Engine Python中的URL映射

时间:2012-07-28 06:43:07

标签: python google-app-engine url

有没有办法在Google App Engine中拆分多个文件中的网址映射?

我想要这样的事情:

from app1.controller import App1Handler
from app2.controller import App2Handler

app = webapp2.WSGIApplication([(r'/app1', App1Handler),(r'/app1', App2Handler)])

在App1Handler中,我想指出一些这样的事情:

(r'/action1', Action1Handler), (r'/action2', Action2Handler)

总之,当用户访问 / app1 / action1 时,必须执行 Action1Handler

Django有一个类似的功能,其中管理站点网址包含在主网址模式中。

urlpatterns = patterns('',
    url(r'^polls/$', 'polls.views.index'),
    url(r'^admin/', include(admin.site.urls)),
)

GAE中是否有此类规定?

2 个答案:

答案 0 :(得分:1)

您可以在app.yaml级别分配2个文件:

- url: /app1/.*
  script: file1.py
- url: /app2/.*
  script: file2.py

我认为您仍然需要在file1.py文件中的所有网址中添加/ app1,例如。

app = webapp2.WSGIApplication([(r'/app1/myview', Handler),(r'/app1/myotherview', AnotherHandler)])

我认为这样更好,因为您可以在2个模块中使用具有相同名称的处理程序,而如果您在主文件中导入了2个具有相同名称的处理程序,则会出现冲突。

答案 1 :(得分:1)

您可以使用app.yaml执行@ user375348所描述的内容,否则您需要构建自己的内容。 webapp2文档中有一个简单的路由器,您可以直接使用它。

http://webapp-improved.appspot.com/guide/handlers.html