0

app-engine-path에서 응용 프로그램을 개발 중이며 일부 데이터를 데이터 저장소에 업로드하고 싶습니다. 내가보기에이를 저장하면()이 엔티티는 "models_place가"의 종류,appcfg.py upload_data 엔터티 종류 문제

class Place(db.Model): 
    name = db.StringProperty() 
    longitude = db.FloatProperty() 
    latitude = db.FloatProperty() 

: 예를 들어 나는 모델을

모델/places.py 있습니다. 모두보기에 괜찮습니다. Place.all()이 제대로 작동합니다.

그러나 :

나는이 단체의 장소입니다 appcfg.py upload_data, 종류()를 사용하여 몇 가지 다음 행을 업로드합니다. 업로드

import datetime, os, sys 
from google.appengine.ext import db 
from google.appengine.tools import bulkloader 

libs_path = os.path.join("/home/martin/myproject/src/") 
if libs_path not in sys.path: 
    sys.path.insert(0, libs_path) 
from models import places 

class AlbumLoader(bulkloader.Loader): 
    def __init__(self): 
     bulkloader.Loader.__init__(self, 'Place', 
           [('name', lambda x: x.decode('utf-8')), 
            ('longitude', float), 
            ('latitude', float), 
           ]) 
loaders = [AlbumLoader] 

및 명령 :

loader.py의이 같은 모습

places_loader.py :

from google.appengine.ext import bulkload 

class PlaceLoader(bulkload.Loader): 
    def __init__(self): 
     bulkload.Loader.__init__(self, 'models_place', 
           [('name', lambda x: x.decode('utf-8')), 
           ('longitude', float), 
           ('latitude', float), 
           ]) 
if __name__ == '__main__': 
    bulkload.main(PlaceLoader()) 

응용 프로그램

python /usr/local/google_appengine/appcfg.py upload_data --config_file=places_loader.py --kind=models_place --filename=data/places.csv --url=http://localhost:8000/remote_api /home/martin/myproject/src/ 
+0

당신이 어떤 이름의 네임 스페이스를 포함하는 모델 클래스를 수정 앱 엔진 패치를 사용하고 있기 때문에 이런 일이 -하지만 가져온 유일합니다. –

답변

1

나는 해결책을 발견 .yaml :

- url: /load 
    script: places_loader.py 

및 명령 :

python /usr/local/google_appengine/bulkload_client.py --filename data/places.csv --kind models_place --url http://localhost:8000/load