我可以将gae数据上传到本地服务器吗

-4 投票
3 回答
905 浏览
提问于 2025-04-16 00:09

这是我的反馈:

D:\zjm_demo\app>appcfg.py upload_data --config_file=upload/str_loader.py --filename=upload/a.csv --kind=College --url=http://localhost:8100/remote_api
Uploading data records.
app_id argument required for non appspot.com domains

D:\zjm_demo\app>appcfg.py upload_data --app_id=zjm1126 --config_file=upload/str_loader.py --filename=upload/a.csv --kind=College --url=http://localhost:8100/rem
ote_api
Usage: appcfg.py [options] <action>

appcfg.py: error: no such option: --app_id

D:\zjm_demo\app>appcfg.py upload_data app_id=zjm1126 --config_file=upload/str_loader.py --filename=upload/a.csv --kind=College --url=http://localhost:8100/remot
e_api
Usage: appcfg.py [options] upload_data <directory>

appcfg.py: error: Not a directory: app_id=zjm1126

我可以把数据上传到本地服务器吗?

谢谢

更新

我的 ste_loader.py 文件是:

from google.appengine.ext import db
from google.appengine.tools import bulkloader
# 以下是 Model 的 Definition
class College(db.Model):
    cid = db.StringProperty(required=True)
    name = db.StringProperty(required=True)

# 以下是匯入資料的 class
class CollegeLoader(bulkloader.Loader):
    def __init__(self):
        bulkloader.Loader.__init__(self, 'College',
                                   [
                                    ('cid', str),
                                    ('name', lambda x: unicode(x, 'utf-8')),
                                   ])

loaders = [CollegeLoader]

3 个回答

0
appcfg.py download_data --url=http://APPNAME.appspot.com/_ah/remote_api --filename=dump --kind=EntityName
appcfg.py upload_data --url=http://127.0.0.1:8080/_ah/remote_api --filename=dump --application=dev~APPNAME

如果你在认证方面遇到问题,可以在你的 appengine_config.py 文件中添加以下内容:

if os.environ.get('SERVER_SOFTWARE','').startswith('Development'):
    remoteapi_CUSTOM_ENVIRONMENT_AUTHENTICATION = (
    'REMOTE_ADDR', ['127.0.0.1'])
0

我知道这个问题已经有点老了,但我自己也在尝试解决这个问题,所以想给未来的朋友们留个笔记。

没错:你可以把数据上传到本地的开发服务器上。原问题中提到的ste_loader.py文件已经不再推荐使用了。现在更好的方法是写一个.yaml文件来描述数据的转换。我找到了一些有用的信息,帮助我理解这些内容,可以在这里查看,还有这里(不过要小心,这个可能已经过时了)。官方文档在这里:GAE关于appcfg.py和bulkloader.yaml的文档,但遗憾的是我觉得它并不是很有帮助。最后我还是去看了源代码,这里是google.appengine.ext.bulkload.transform.py的源代码

0

upload_data这个函数的参数是--application或者-A,而不是--app_id:

upload_data --application=zjm1126 --config_file=upload/str_loader.py --filename=upload/a.csv --kind=College --url=http://localhost:8100/rem

撰写回答