Select 来自 table 的数据在 SQLAlchemy 中抛出错误
Select data from table throws error in SQLAlchemy
我是一名尝试使用 Pyramid 和 SQLAlchemy 执行简单 Web 应用程序的初学者。截至目前,我的应用程序仅 returns 所有数据存储在我的 table.
中
我的views.py:
@view_config(route_name='home', renderer='templates/trial.pt')
def my_view(request):
try:
#str=Mystring(name="second",data="Hellostring")
#DBSession.add(str)
myvar=Mystring.query.order_by(Mystrings.data)
except DBAPIError:
return Response(conn_err_msg, content_type='text/plain', status_int=500)
#return {'project': 'Alpy'}
return {'myvar':myvar}
我的模板:-
<body>
<div id="middle">
<div class="middle align-right">
<div id="left" class="app-welcome align-left">
You can return to the
<a href="${request.application_url}">FrontPage</a>.<br/>
<div tal:condition="myvar">
Your selection returns:<br><tal:block tal:content="myvar"></tal:block>
</div>
</div>
</div>
</body>
我的model.py:-
class Mystring(Base):
__tablename__ = 'mystrings'
id = Column(Integer, primary_key=True)
name = Column(Text)
data = Column(Text)
我的错误是:AttributeError: type object 'Mystring' has no attribute 'query'
我试过了。 "myvar=DBSession.query(Mystring).all()" 错误消失了,但我得到
Your selection returns:
[alpy.models.Mystring object at xxxx, alpy.models.Mystring object at xxxxx]
这不是我想要的。我想要一个名称值对。
请帮忙。
您正在从 sqlalchemy 获取对象列表。如果您只需要数据,并且想要 return 一个 (name, data) 对的列表,您可以使用这样的列表理解来完成:
return [(x.name, x.data) for x in myvar]
注意:x
只是列表理解的一个局部变量,所以它可以是任何你喜欢的名字。
官方网站上有一些关于 sqlalchemy 基础知识的很棒的文档,这里是:http://docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html
我是一名尝试使用 Pyramid 和 SQLAlchemy 执行简单 Web 应用程序的初学者。截至目前,我的应用程序仅 returns 所有数据存储在我的 table.
中我的views.py:
@view_config(route_name='home', renderer='templates/trial.pt')
def my_view(request):
try:
#str=Mystring(name="second",data="Hellostring")
#DBSession.add(str)
myvar=Mystring.query.order_by(Mystrings.data)
except DBAPIError:
return Response(conn_err_msg, content_type='text/plain', status_int=500)
#return {'project': 'Alpy'}
return {'myvar':myvar}
我的模板:-
<body>
<div id="middle">
<div class="middle align-right">
<div id="left" class="app-welcome align-left">
You can return to the
<a href="${request.application_url}">FrontPage</a>.<br/>
<div tal:condition="myvar">
Your selection returns:<br><tal:block tal:content="myvar"></tal:block>
</div>
</div>
</div>
</body>
我的model.py:-
class Mystring(Base):
__tablename__ = 'mystrings'
id = Column(Integer, primary_key=True)
name = Column(Text)
data = Column(Text)
我的错误是:AttributeError: type object 'Mystring' has no attribute 'query'
我试过了。 "myvar=DBSession.query(Mystring).all()" 错误消失了,但我得到
Your selection returns:
[alpy.models.Mystring object at xxxx, alpy.models.Mystring object at xxxxx]
这不是我想要的。我想要一个名称值对。
请帮忙。
您正在从 sqlalchemy 获取对象列表。如果您只需要数据,并且想要 return 一个 (name, data) 对的列表,您可以使用这样的列表理解来完成:
return [(x.name, x.data) for x in myvar]
注意:x
只是列表理解的一个局部变量,所以它可以是任何你喜欢的名字。
官方网站上有一些关于 sqlalchemy 基础知识的很棒的文档,这里是:http://docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html