下载Google App Engine里的数据 python版本

要下载gae上的数据你要做三个步骤:

第一:修改app.yaml

在你的程序的 app.yaml文件加上一个url路由

- url: /remote_api 

  script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py 

  login: admin 

 注意放到起作用的地方,路由功能是由上而下匹配的.

第二:生成bulkloader.yaml转换配置文件

利用命令:

appcfg.py create_bulkloader_config --filename=bulkloader.yaml --url=http://<你的程序ID>.appspot.com/remote_api  

这会在gae程序的根目录生成一个bulkloader.yaml文件,你也可以改为在其他目录生成.能用就行.

打开bulkloader.yaml做相应的修改

找到 python_preamble:的地方确认一下 模块都被引用进去了 特别是 - import: google.appengine.ext.db 他一般会被忽略 所以我们要加上.

- import: base64

- import: re

- import: google.appengine.ext.bulkload.transform

- import: google.appengine.ext.bulkload.bulkloader_wizard

- import: google.appengine.api.datastore

- import: google.appengine.api.users

- import: google.appengine.ext.db

下面是针对各项模型类的修改,你可以参考:

- kind: Status  (这些就是你的模型名字 注意大小写)

  connector: # TODO: Choose a connector here: csv, simplexml, etc... (这里一般是csv sql3格式的文件会自动生成)

  connector_options:

    # TODO: Add connector options here--these are specific to each connector. (这里可以写编码方式等等)

#下面这里一般不用修改

  property_map:

    - property: __key__

      external_name: key

      export_transform: transform.key_id_or_name_as_string

    - property: desc

      external_name: desc

      # Type: String Stats: 5 properties of this type in this kind.

    - property: step

      external_name: step

      # Type: Integer Stats: 5 properties of this type in this kind.

      import_transform: transform.none_if_empty(int)

第三 下载文件

  利用命令 :

appcfg.py download_data --config_file=bulkloader.yaml --application=<你的程序ID>  --kind=Status  --url=http://<你的程序ID>.appspot.com/remote_api --filename=test.csv <你的程序放置的目录>

 其中 --kind=Status  是指下载Status  这个类模型的数据.要下载全部可以使用 --kind=...

这样在你的gae程序的根目录就会有相应的一个test.csv文件和sql3文件了 你可以上传这些文件

posted @ 2010-07-02 11:56  nosqlcn  阅读(312)  评论(0编辑  收藏  举报