NameError:name' Base'没有定义

时间:2015-02-13 13:11:43

标签: python sqlite python-2.7 sqlalchemy

以下是我的文件包含所有Table mapper类。

// import statements
Class MyBase(AbstractBase, Base):
    session = None
    def __init__(self):
        global Session
        self.session = Session()
        // init statements

Class Table1(MyBase):
    // fields

engine = create_engine("...")

Session = session_maker(engine)

Base = declarative_base()

Base.meta.create_all()
  1. 我收到NameError: name 'Base' is not defined,因为我的课程在Base初始化之前进行了扩展。

  2. 如果我移动引擎创建,会话创建和放大,我可以使它工作。在定义类之上创建基础。但是Base.meta.create_all()应该出现在类声明之下。如果我将Base.meta.create_all()放在类之上,则表示没有创建表。

  3. 我不想拥有main(),因为我基本上会在其他文件中导入此文件。

  4. 所以,我想在类定义之后保留所有语句(引擎,会话,base和amp_all())。

    修改

    我将引擎,Session,Base移动到base.py&导入它以定义tables.py中的表。 &安培;在test.py中导入。 test.py将调用create_tables(),它在base.py中定义为静态方法。

0 个答案:

没有答案