是否可以只在一个位置包含库/包?
class Sample( db.Model ):
randomText = db.StringProperty( multiline = True )
-
from google.appengine.ext import db
from project.models import Sample
class SampleHandler( ):
def get( self ):
xamp = Sample.all( )
由于处理程序已经从google.appengine.ext库/包中导入db,然后导入模型,我假设您不必再在模型本身中包含它。但是,看起来我不得不这样做?
有人在乎解释吗?
答案 0 :(得分:2)
您需要导入模块使用它们。
如果您的models
模块使用google.appengine.ext.db
模块,则需要将其导入,而不是在处理程序模块中。
导入事物会在模块命名空间中创建对该“事物”的引用,以便在使用它时可以找到它的代码。 db
是您使用google.appengine.ext
中定义的对象的本地名称。
如果您的处理程序使用相同的对象,则需要仍然导入它。如果导致models
所有名称突然出现在您的处理程序模块中的models
,那么您最终会遇到名称冲突和难以调试的错误这个地方。
反之亦然,如果仅在处理程序模块中而不是在google.appengine.ext.db
模块中导入models
,则需要将给定模块的所有依赖项与模块本身一起导入。这很快变得不可行,因为您需要记录models
模块所需的所有内容才能使用它。