loading...

Google App Engine的app.yaml详细说明

发布时间:June 7, 2010 分类:Python

推荐sersync来进行文件同步

Google App Engine上试用web.py笔记

Google AppEngine使用一个app.yaml作为其重要的全局的配置文件。
每个独立的Google AppEngine的应用,都必须声明这样一个文件。

app.yaml使用YAML作为格式。熟悉Ruby的人应该非常熟悉yaml这种格式。

必添内容
在一个app.yaml中,必须要声明如下字段:
application
application用来唯一标示一个Google AppEngine的应用。
在开发环境中(使用dev_appserver.py),这个字段必添,但其值随意。
但是在部署环境中(应用上载至Google AppEngin的host后),
这个值必须与你申请的Google AppEngine的那个application_id一致。

application: myapp
version
version用来标示这一个Google AppEngine应用的版本。同样,在开发环境中,这个值可以随意。

runtime 和 api_version
runtime 和 api_version标示应用将依赖于那种运行环境(runtime)的哪个版本(api_version)。
当前由于只支持python,因此这两个值是固定的。

runtime: python
api_version: 1
handlers
handlers用来定义一系列url handlers,(类似于URL Mapping,如果你熟悉Spring MVC的话)。
需要为每一个handler指派一个url pattern(可以使用正则表达式)。
一旦请求的URL满足这个pattern的时候,AppEngine便会将这个请求交由这个handler所制定的对象来处理。

当需要处理动态内容时,使用script字段。script定义了用来处理这个请求的python文件路径。
handlers:
- url: /.*
script: main.py
- url: /book/.*
script: book.py
Google AppEngine在匹配url pattern的时候,使用first-match优先原则。因此上面的配置中,book.py永远也不会被使用。

当然还可以使用handler处理静态内容,如javascript脚本,或是css文件等。

-url: /static
static_dir: path/to/static
static_dir标明了静态文件所在的目录。 因此如/static/main.js的请求,Google AppEngine会到/path/to/static/main.js处寻找。

- url: /flex
static_dir: /flex

以上是初学者常会犯的错误。正确的应该是

- url: /flex
static_dir: flex

Tags: AppEngine, yaml


已有 3 条评论 »

  1. 落叶 落叶

    不懂python,Google AppEngine什么时候能支持php呢?

    1. Mary Mary

      "不懂python,Google AppEngine什么时候能支持php呢"

      我想知道这个。我一直纳闷,这一段时间,但我很高兴有人能够在我面前问。

  2. nicol nicol

    现在Google AppEngine什已经有了php,那请问app.yaml又该如何去写呢

添加新评论 »

captcha
请输入验证码