2010-05-18 26 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]