2

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

我想要这样的东西:

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 有一个类似的功能,其中管理站点 url 包含在主要 url 模式中。

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

GAE 中是否有此类规定?

4

2 回答 2

1

您可以在 app.yaml 级别拆分两个文件:

- 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 个具有相同名称的处理程序,则会发生冲突。

于 2012-07-28T07:44:41.470 回答
1

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

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

于 2012-07-28T15:30:37.680 回答