如何从ndb.Model导入一个类?

时间:2015-05-14 06:34:35

标签: python

我正在使用Google App Engine,我想在另一个.py文件中使用我的ndb模型,但我无法导入它。

这是我的main.py;

from google.appengine.ext import ndb

class User(ndb.Model):
    username = ndb.StringProperty()
    created_date = ndb.DateTimeProperty(auto_now=True)
    follower_list = ndb.StringProperty(repeated=True)

这是我的cron.py文件中的一些代码:

from google.appengine.ext import ndb

save_user = User.query().filter(User.username == username)

但我得到了:

  

ImportError:No module named User

如何导入User类?

1 个答案:

答案 0 :(得分:3)

创建模型时,您只是实例化一个类并将其分配给名为User的变量。在python中,这些变量绑定到它们声明的模块,并且没有隐式全局变量,所以如果你想在另一个模块中使用它,你需要导入它:

from google.appengine.ext import ndb
import main

save_user = main.User.query().filter(main.User.username == username)

但最佳做法是在models.py文件中创建模型,并在需要时随时导入。

顺便说一句,你的错误暗示你在cron文件中尝试import User,是这样吗?无论哪种方式,我认为你现在应该得到这个想法:)