2010-05-18 27 views
1

http://code.google.com/intl/en/appengine/docs/python/tools/uploadingdata.html什么是remote_api的在谷歌应用程序内引擎 '<应用程序目录>'

的API是

下载数据从App Engine的

要启动数据下载,使用适当的参数运行appcfg.py download_data:

appcfg.py download_data --config_file=album_loader.py --filename=album_data_archive.csv --kind=Album <app-directory> 

我想从我的GAE应用zjm1126下载数据。 appspot.com

,所以我写这篇文章的commond:

appcfg.py download_data --config_file=GreetingLoad.py --filename=GreetingLoad.csv 

,但我不知道怎么写的“应用程序目录”

那么,如何写“应用-directory” ..

感谢

更新

我用这个:

appcfg.py download_data --config_file=helloworld/GreetingLoad.py --filename=a.csv --kind=Greeting helloworld 

和错误是:

D:\zjm_code>appcfg.py download_data --config_file=helloworld/GreetingLoad.py --f 
ilename=a.csv --kind=Greeting helloworld 
Application: zjm1126; version: 1-h1. 
Downloading data records. 
[INFO ] Logging to bulkloader-log-20100518.195933 
[INFO ] Throttling transfers: 
[INFO ] Bandwidth: 250000 bytes/second 
[INFO ] HTTP connections: 8/second 
[INFO ] Entities inserted/fetched/modified: 20/second 
[INFO ] Batch Size: 10 
[INFO ] Opening database: bulkloader-progress-20100518.195933.sql3 
Traceback (most recent call last): 
    File "d:\Program Files\Google\google_appengine\appcfg.py", line 68, in <module 
> 
    run_file(__file__, globals()) 
    File "d:\Program Files\Google\google_appengine\appcfg.py", line 64, in run_fil 
e 
    execfile(script_path, globals_) 
    File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p 
y", line 2709, in <module> 
    main(sys.argv) 
    File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p 
y", line 2700, in main 
    result = AppCfgApp(argv).Run() 
    File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p 
y", line 1763, in Run 
    self.action(self) 
    File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p 
y", line 2580, in __call__ 
    return method() 
    File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p 
y", line 2446, in PerformDownload 
    run_fn(args) 
    File "d:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p 
y", line 2368, in RunBulkloader 
    sys.exit(bulkloader.Run(arg_dict)) 
    File "D:\Program Files\Google\google_appengine\google\appengine\tools\bulkload 
er.py", line 4012, in Run 
    return _PerformBulkload(arg_dict) 
    File "D:\Program Files\Google\google_appengine\google\appengine\tools\bulkload 
er.py", line 3887, in _PerformBulkload 
    exporter = Exporter.RegisteredExporter(kind) 
    File "D:\Program Files\Google\google_appengine\google\appengine\tools\bulkload 
er.py", line 2901, in RegisteredExporter 
    return Exporter.__exporters[kind] 
KeyError: 'Greeting' 

和我GreetingLoad.py是:

import datetime 
from google.appengine.ext import db 
from google.appengine.tools import bulkloader 


class Greeting(db.Model): 
    author = db.UserProperty() 
    content = db.StringProperty(multiline=True) 
    date = db.DateTimeProperty(auto_now_add=True) 



class GreetingLoader(bulkloader.Loader): 
    def __init__(self): 
     bulkloader.Loader.__init__(self, 'Greeting', 
            [('author', lambda x: x.decode('utf-8')), 
            ('content', lambda x: x.decode('utf-8')), 
            ('date', 
            lambda x: datetime.datetime.strptime(x, '%m/%d/%Y').date()) 
            ]) 

loaders = [GreetingLoader] 

亩,网址是:

- url: /remote_api 
    script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py 
    login: admin 

更新ED2

现在是好的,感谢

appcfg.py download_data --config_file=helloworld/GreetingLoad.py --filename=a.csv --kind=Greeting helloworld 

class AlbumExporter(bulkloader.Exporter): 
    def __init__(self): 
     bulkloader.Exporter.__init__(self, 'Greeting', 
            [('author', str, None), 
             ('content', str, None), 
             ('date', str, None), 
            ]) 

exporters = [AlbumExporter] 
+0

你试图_export_数据,但你只定义的_loader_类。您需要定义一个导出器类。 – 2010-05-18 19:15:07

回答

1

请看看这篇文章,它解释了如何设置下载数据:http://code.google.com/appengine/docs/python/tools/uploadingdata.html

app-directory是您在app.yaml文件中设置的映射到remote_api的路径:

- url: /app-directory 
    script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py 
    login: admin 

要回答这个问题,更新:

loaders = ...线更改为exporters = [GreetingExporter]