下载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=...