Python 如何从ndb.Model导入类?

Python 如何从ndb.Model导入类?,python,Python,我正在使用Google App Engine,我想在另一个.py文件中使用我的ndb模型,但我无法导入它 这是我的主要任务.py from google.appengine.ext import ndb class User(ndb.Model): username = ndb.StringProperty() created_date = ndb.DateTimeProperty(auto_now=True) follower_list = ndb.StringPro

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

这是我的主要任务.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)
但我得到了:

导入错误:
没有名为User的模块


如何导入用户类?

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

from google.appengine.ext import ndb
import main

save_user = main.User.query().filter(main.User.username == username)
但是,最佳做法是在
models.py
文件中创建模型,并在需要时随时导入



顺便说一句,您的错误提示您试图在cron文件的前面导入用户,是这样吗?无论是哪种方式,我认为您现在应该明白了:)

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

from google.appengine.ext import ndb
import main

save_user = main.User.query().filter(main.User.username == username)
但是,最佳做法是在
models.py
文件中创建模型,并在需要时随时导入



顺便说一句,您的错误提示您试图在cron文件的前面导入用户,是这样吗?无论是哪种方式,我认为您现在应该明白了:)

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

from google.appengine.ext import ndb
import main

save_user = main.User.query().filter(main.User.username == username)
但是,最佳做法是在
models.py
文件中创建模型,并在需要时随时导入



顺便说一句,您的错误提示您试图在cron文件的前面导入用户,是这样吗?无论是哪种方式,我认为您现在应该明白了:)

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

from google.appengine.ext import ndb
import main

save_user = main.User.query().filter(main.User.username == username)
但是,最佳做法是在
models.py
文件中创建模型,并在需要时随时导入




顺便说一句,您的错误提示您试图在cron文件的前面导入用户,是这样吗?不管是哪种方式,我认为您现在应该明白了:)

您实际上必须导入您正在使用的类。是的,但是如何导入呢?我不知道怎么进口。这不是django。与django无关,这是完全标准的Python。你可以从你定义的地方导入这个类。这个问题与谷歌AppEngine无关,是一个关于标准Python导入的问题。你可以考虑为NDB模型类有一个单独的文件。实际上你必须导入你正在使用的类。是的,但是如何?我不知道怎么进口。这不是django。与django无关,这是完全标准的Python。你可以从你定义的地方导入这个类。这个问题与谷歌AppEngine无关,是一个关于标准Python导入的问题。你可以考虑为NDB模型类有一个单独的文件。实际上你必须导入你正在使用的类。是的,但是如何?我不知道怎么进口。这不是django。与django无关,这是完全标准的Python。你可以从你定义的地方导入这个类。这个问题与谷歌AppEngine无关,是一个关于标准Python导入的问题。你可以考虑为NDB模型类有一个单独的文件。实际上你必须导入你正在使用的类。是的,但是如何?我不知道怎么进口。这不是django。与django无关,这是完全标准的Python。你可以从你定义的地方导入这个类。这个问题与谷歌AppEngine无关,是一个关于标准Python导入的问题。你可以考虑为NDB模型类有一个单独的文件。仅仅导入用户类而不是整个“主”模块不是更好吗?i、 e.“来自主要导入用户”是的,你是对的,当时我忘记了,我正忙于为模型文件辩护,这将是有意义的:)不要对它有强烈的感觉。。。我写这篇文章是为了让提问者尽可能简单地跟随和理解,他做到了。只导入User类而不是整个“main”模块不是更好吗?i、 e.“来自主要导入用户”是的,你是对的,当时我忘记了,我正忙于为模型文件辩护,这将是有意义的:)不要对它有强烈的感觉。。。我写这篇文章是为了让提问者尽可能简单地跟随和理解,他做到了。只导入User类而不是整个“main”模块不是更好吗?i、 e.“来自主要导入用户”是的,你是对的,当时我忘记了,我正忙于为模型文件辩护,这将是有意义的:)不要对它有强烈的感觉。。。我写这篇文章是为了让提问者尽可能简单地跟随和理解,他做到了。只导入User类而不是整个“main”模块不是更好吗?i、 e.“来自主要导入用户”是的,你是对的,当时我忘记了,我正忙于为模型文件辩护,这将是有意义的:)不要对它有强烈的感觉。。。我写这篇文章是为了让提问者尽可能简单地跟随和理解,他做到了。