繁体   English   中英

从表中选择数据会在SQLAlchemy中引发错误

[英]Select data from table throws error in SQLAlchemy

我是一个初学者,尝试使用Pyramid和SQLAlchemy执行一个简单的Web应用程序。 到目前为止,我的应用程序仅返回存储在表中的所有数据。

我的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>

我的模型.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 [(x.name, x.data) for x in myvar]

注意: x只是列表理解的局部变量,因此它可以是您喜欢的任何名称。

官方站点上有一些关于sqlalchemy基础的出色文档,位于: http : //docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM