我正在根据本教程构建 Pyramid wiki。
一切正常,除非尝试为我的模型创建一个文件夹,而不是将它们放在主文件夹中的文件 models.py 中。
我创建了一个模型文件夹,向其中添加了一个__init__.py
文件,以及一个包含以下内容的页面文件:
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import Text
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Page(Base):
""" The SQLAlchemy declarative model class for a Page object. """
__tablename__ = 'pages'
id = Column(Integer, primary_key=True)
name = Column(Text, unique=True)
data = Column(Text)
def __init__(self, name, data):
self.name = name
self.data = data`
这不起作用 - 我收到“找不到名为 pages 的表”错误。这是我的models.py
文件:
import transaction
from sqlalchemy.exc import IntegrityError
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import Text
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from zope.sqlalchemy import ZopeTransactionExtension
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()
from test.models.Page import Page
现在,如果我用这个替换最后一行,一切正常:
class Page(Base):
""" The SQLAlchemy declarative model class for a Page object. """
__tablename__ = 'pages'
id = Column(Integer, primary_key=True)
name = Column(Text, unique=True)
data = Column(Text)
def __init__(self, name, data):
self.name = name
self.data = data
我究竟做错了什么?