Python 在塔架中创建模型时遇到问题
我一直在读《塔架》这本书,在读了关于模型的部分后,我意识到它已经过时了。然后我转到官方的Pylons文档,在Pylons 1.0中创建模型- 我遵循了他们的做法,但仍然失败 ./blog/model/init.py 有两个同名的班级让我很震惊。。。但无论如何,这是教程所说的 但是,当我尝试运行代码时,我得到:Python 在塔架中创建模型时遇到问题,python,model,sqlalchemy,pylons,Python,Model,Sqlalchemy,Pylons,我一直在读《塔架》这本书,在读了关于模型的部分后,我意识到它已经过时了。然后我转到官方的Pylons文档,在Pylons 1.0中创建模型- 我遵循了他们的做法,但仍然失败 ./blog/model/init.py 有两个同名的班级让我很震惊。。。但无论如何,这是教程所说的 但是,当我尝试运行代码时,我得到: 28, in <module> orm.mapper(Page, pages_table) NameError: name 'pages_table' is not
28, in <module>
orm.mapper(Page, pages_table)
NameError: name 'pages_table' is not defined
28,在
orm.mapper(第页、第页和表)
NameError:未定义名称“pages\u table”
吃这个吗?我怎样才能让它不失败/ 首先,您不应该用相同的名称声明两个类。这到底是怎么回事 其次,您可能希望阅读正式的SQLA文档,而不是挂架。升级后的Pylons文档有点凌乱,仍然有很多0.9.7参考。 此处描述了声明性扩展: 第三,声明性意味着您不需要将类绑定到表,它是在类定义中完成的 这是映射的充分声明,您可以继续使用它:
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__
首先,不应该用相同的名称声明两个类。这到底是怎么回事 其次,您可能希望阅读正式的SQLA文档,而不是挂架。升级后的Pylons文档有点凌乱,仍然有很多0.9.7参考。 此处描述了声明性扩展: 第三,声明性意味着您不需要将类绑定到表,它是在类定义中完成的 这是映射的充分声明,您可以继续使用它:
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__
同意:你对使用相同名称创建类的建议表示怀疑是正确的。在发布我的问题后不久,我的谷歌搜索出现了,这是教程为Pylons 1.0编写的代码。现在我的代码开始工作了。同意:你对创建同名类的建议表示怀疑是正确的。在发布我的问题后不久,我的谷歌搜索出现了,这是教程为Pylons 1.0编写的代码。我的代码现在可以用了。