このチュートリアルからPyramidwikiを構築しています。
メインフォルダーの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
私は何が間違っているのですか?