【发布时间】:2013-05-28 13:33:36
【问题描述】:
我正在使用 Python 构建一个 GAE webapp。我也在使用数据存储并尝试使用终端和 CSV 文件将数据批量上传到数据库:
https://developers.google.com/appengine/docs/python/tools/uploadingdata
我在我的应用根目录中的一个单独的.py 文件中创建了一个 Loader 类。我不确定这个加载器类是否应该在我的 main.py webapp 文件中,或者根目录中的另一个文件中。
加载器类:
import datetime
from google.appengine.ext import db
from google.appengine.tools import bulkloader
import models
class FTSELoader(bulkloader.Loader):
def __init__(self):
bulkloader.Loader.__init__(self, 'FTSE',
[('date', lambda x: datetime.datetime.strptime(x, '%Y/%m/%d')),
('close', float)])
loaders = [FTSELoader]
我尝试创建/上传的类(即我的数据存储表)称为“FTSE”。然后我在终端中运行这个命令:
appcfg.py upload_data --config_file=FTSEdataloader.py --filename=FTSEdata.csv -- kind=FTSE --url=http://<myapp.appspot.com>/_ah/remote_api
我收到以下错误:
文件“FTSEdataloader.py”,第 4 行,在 导入模型 ImportError:没有名为模型的模块
我没有像 GAE 演示中那样的“models.py”。应该用什么代替它?
谢谢
【问题讨论】:
-
如果models.py中没有,你的模型在哪里定义?
-
对不起,我是编程新手,所以不确定我是否完全理解。为了在数据库中定义我的表,我的 main.py 应用程序文件中有类。那么这应该是“import main.py”吗?代替?
-
通常将模型放在自己的文件中,称为 models.py。在 main.py 中,您可以使用
from .models import MyModel导入它们。通过这样做,您将避免在应用程序增长时出现的循环导入问题
标签: google-app-engine google-cloud-datastore