在Appengine中使用带有WSGI /线程安全的“安全”和“登录”处理程序

时间:2012-08-10 19:33:04

标签: python google-app-engine wsgi

根据Appengine文档,我非常不清楚如何同时使用app.yaml配置设置和webapp2框架。

例如,文档建议:

- url: /youraccount/.*
  script: accounts.py
  login: required
  secure: always

然而,accounts.py是CGI表格;与main.app做事方式不相容。

以下是我尝试过的一些排列,并且出于各种原因失败

- url: /.*
  script: main.app

- url: /admin/.*
  secure: always
  login: required

上述失败,因为需要脚本

- url: /.*
  script: main.app

- url: /admin/.*
  script: main.app
  secure: always
  login: required

上面的失败是因为securelogin指令似乎被忽略了。

- url: /.*
  script: main.app

- url: /admin/.*
  script: admin.py
  secure: always
  login: required

上述失败,因为CGI样式的处理程序与threadsafe不兼容。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

此:

- url: /.*
  script: main.app

- url: /admin/.*
  script: main.app
  secure: always
  login: required

app.yaml文件中的处理程序为searched top-down,并使用第一个可能的匹配项。因此,“securelogin指令似乎被忽略”的症状是因为URL与第一个指令(- url: /.*)匹配,而不是应用其他选项。

基本上,首先使用最具体的模式切换顺序。

- url: /admin/.*
  script: main.app
  secure: always
  login: required

- url: /.*
  script: main.app