Pylons 1.0与SQLAlchemy 0.6 - 我该如何建模?

1 投票
3 回答
826 浏览
提问于 2025-04-16 01:58

我最近在看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 个回答

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),
)
1

我觉得你应该用 Base.metadata,而不是 meta.metadata,特别是在使用 Pylons 1.0 的时候。

3

Pylons 1.0 默认使用声明式基础来建模。

举个例子:

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/ 查看更新的参考资料。

撰写回答