Я строю вики Pyramid из этого учебного пособия.
Все работает хорошо, за исключением случаев, когда вы пытаетесь создать папку для моих моделей вместо того, чтобы иметь их в файле models.pyв основной папке.
Я создал папку моделей, добавил в нее файл __init__.py
и файл Page с содержанием:
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`
Это не работает - яполучить ошибку «не могу найти таблицы с именами страниц».Это мой 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
Что я делаю не так?