gpt4 book ai didi

python - 在 Pylons 中创建我的模型时遇到一些问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:03:29 26 4
gpt4 key购买 nike

我一直在阅读 Pylons Book,在阅读了有关模型的部分后,意识到它已经过时了。因此,我随后切换到官方 Pylons 文档以在 Pylons 1.0 中创建模型 - http://pylonshq.com/docs/en/1.0/tutorials/quickwiki_tutorial/

我已按照他们的要求进行操作,但仍然失败。

./blog/model/init.py

"""The application's model objects"""
from sqlalchemy import orm, Column, Unicode, UnicodeText
from blog.model.meta import Session, Base


def init_model(engine):
"""Call me before using any of the tables or classes in the model"""
Session.configure(bind=engine)

class Page(Base):
__tablename__ = 'pages'

title = Column(Unicode(40), primary_key=True)
content = Column(UnicodeText(), default=u'')


class Page(object):

def __init__(self, title, content=None):
self.title = title
self.content = content

def __unicode__(self):
return self.title

__str__ = __unicode__

orm.mapper(Page, pages_table)

有两个同名的类让我大吃一惊......但是,这就是教程所说的。

但是,当我尝试运行我的代码时,我得到:

 28, in <module>
orm.mapper(Page, pages_table)
NameError: name 'pages_table' is not defined

受够了吗?我怎样才能让它不失败? :/

最佳答案

首先,你不应该声明两个同名的类。这究竟应该如何运作?

其次,您可能想要阅读官方 SQLA 文档,而不是 Pylons。升级后 Pylons 文档有点乱,仍然有很多 0.9.7 引用。此处描述了声明性扩展:http://www.sqlalchemy.org/docs/reference/ext/declarative.html

第三,声明式意味着你不需要将类绑定(bind)到表,它在类定义中完成。

这是映射的充分声明,您可以继续使用它:

class Page(Base):
__tablename__ = 'pages'

title = Column(Unicode(40), primary_key=True)
content = Column(UnicodeText(), default=u'')

def __init__(self, title, content=None):
self.title = title
self.content = content

def __unicode__(self):
return self.title

__str__ = __unicode__

关于python - 在 Pylons 中创建我的模型时遇到一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3377013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com