2010-05-18 6 views
1

http://code.google.com/intl/en/appengine/docs/python/tools/uploadingdata.htmlce qui est le '<app-répertoire>' de remote_api dans google-app-engine

l'api est:

Téléchargement des données de App Engine

Pour lancer un téléchargement de données , exécutez appcfg.py download_data avec les arguments appropriés:

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

je veux télécharger les données de mon application Gae zjm1126. appspot.com

donc j'écrire ceci dans le commond:

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

mais, je ne sais pas comment écrire l' 'app-répertoire'

donc, comment écrire l' « application -directory » ..

grâce

mis à jour

j'utilise ceci:

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

et l'erreur est:

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' 

et mon GreetingLoad.py est:

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 mu est:

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

updat ED2

il est ok maintenant, merci

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

et

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

exporters = [AlbumExporter] 
+0

Vous essayez de _export_ données, mais vous avez seulement défini une classe _loader_. Vous devez définir une classe d'exportateur à la place. –

Répondre

1

S'il vous plaît jeter un oeil à cet article, il explique comment configurer le téléchargement de données: http://code.google.com/appengine/docs/python/tools/uploadingdata.html

Le app-directory est le chemin que vous avez configuré dans le fichier app.yaml pour le mapper vers le remote_api:

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

Pour répondre à la question mise à jour:

changer votre ligne loaders = ...-exporters = [GreetingExporter]