Pylons 1.0和SQLAlchemy 0.6 - 我如何建模?

时间:2010-07-28 14:16:40

标签: python model sqlalchemy pylons

我一直在阅读http://pylonsbook.com/en/1.1/starting-the-simplesite-tutorial.html并继续阅读他们的SimpleSite教程,但在创建模型时遇到了一些问题。

他们在教程中使用的模型导入是:

"""The application's model objects"""
import sqlalchemy as sa
from sqlalchemy import orm

from simplesite.model import meta

# Add these two imports:
import datetime
from sqlalchemy import schema, types
然后他们用它来创建一个表:

page_table = schema.Table('page', meta.metadata,

但是,当我尝试时,我得到:

AttributeError: 'module' object has no attribute 'metadata'

我猜测Pylons在版本升级期间改变了他们的方式......

那我该怎么做?有人可以将我链接到关于制作模型和处理数据库连接/查询的更新教程吗? :/

3 个答案:

答案 0 :(得分:3)

Pylons 1.0使用声明性Base作为模型的默认值。

为例:

from sqlalchemy import Column
from sqlalchemy.types import Integer, Unicode,
from MYPROJECT.model.meta import Base

class User(Base):
    __tablename__ = 'user'

    id = Column(Integer, primary_key=True)
    username = Column(Unicode(100))

您可以在http://pylonshq.com/docs/en/1.0/models/

中查看更新后的参考资料

答案 1 :(得分:1)

我认为您应该为Pylons 1.0使用Base.metadata而不是meta.metadata。

答案 2 :(得分:1)

应该是这样的:

from blog.model.meta import Session, Base

article_table = sa.Table("article", Base.metadata,
    sa.Column("id", sa.types.Integer, primary_key=True),
    sa.Column("lang", sa.types.String(255), nullable=False),
)