将查询结果显示到视图中

2024-09-28 01:30:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我从数据库查询数据。有一个字段使用sum()函数,我无法在视图中显示。你知道吗

我已经改变了与dict相对应的键,但仍然不起作用。 当我打印口述的时候,它给我看这个。你知道吗

<Row {'indata': {'nation': '\xe0\xb8\x88\xe0\xb8\xb5\xe0\xb8\x99'}, '_extra': {'SUM(`indata`.`quan`)': 14635.0}}>

如果我能进入item.indata.nation项目要访问\xe0\xb8\x88\xe0\xb8\xb5\xe0\xb8\x99 我应该可以访问14635.0从

项目_额外金额(indata.quan)但它不起作用

这是控制器:

def byNation():
    indata = db((db.indata.date>=request.args[0])&
        (db.indata.date<=request.args[1])&(db.indata.quan!=0)
        ).select(db.indata.nation,db.indata.quan.sum(),
        groupby=db.indata.nation,orderby=~db.indata.quan.sum())
    outdata = db((db.outdata.date>=request.args[0])&
        (db.outdata.date<=request.args[1])&(db.outdata.quan!=0)
        ).select(db.outdata.nation,db.outdata.quan.sum(),
        groupby=db.outdata.nation,orderby=~db.outdata.quan.sum())
    return locals()

以下是视图:

{{for item in indata:}}
{{=item.indata.nation}}#This line doing fine
{{=item._extra.SUM(`indata`.`quan`)}}#This line not how could I access it ??
{{pass}}

它在以下位置导致无效语法:

response.write(item._extra.SUM(`indata`.quan`))

这不应该发生。你知道吗


Tags: 视图dbdaterequestargsitemextrasum
1条回答
网友
1楼 · 发布于 2024-09-28 01:30:31

无需显式访问._extra键,您只需执行以下操作:

item['SUM(`indata`.`quan`)']

但是,上面的键可能特定于所使用的特定数据库(它只是数据库用于计算总和的精确查询表达式)。因此,最好使用文档中推荐的方法:

def byNation():
    indata_sum = db.indata.quan.sum()
    indata = db((db.indata.date>=request.args[0])&
    (db.indata.date<=request.args[1])&(db.indata.quan!=0)
    ).select(db.indata.nation,indata_sum,
    groupby=db.indata.nation,orderby=~indata_sum)
    ...
    return locals()

然后在视图中:

{{=item[indata_sum]}}

请参见http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#sum-avg-min-max-and-len(和here了解有关实现细节的更多信息)。你知道吗

相关问题 更多 >

    热门问题