python - 将查询结果显示到 View 中

标签 python web2py

我从数据库查询数据。有一个使用 sum() 函数的字段,我无法在 View 上显示。

我已经改了dict对应的key了,还是不行。 当我打印字典时它会向我显示这一点。

<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

item._extra.SUM(indata.quan) 但它不起作用

这是 Controller :

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()

这是 View :

{{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`))

这不应该发生。

最佳答案

无需显式访问 ._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()

然后在 View 中:

{{=item[indata_sum]}}

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

关于python - 将查询结果显示到 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57369087/

相关文章:

php - lighttpd 上的 web2py 和 wordpress

python - 无法在 Amazon Linux : invalid syntax 上安装 gcloud

python - Pandas to_sql 右截断错误

python - 从 PySpark python 中的日期获取工作日名称

python - web2py 类型错误 : id() takes exactly one argument (0 given)

python - web2py 网络服务器 - 保持与外部 SQL 服务器连接的最佳方式?

python - 自定义web2py注册

python - 部署在 Pythonanywhere 上的 Web2py 不会自动获取函数 View

python - 获取 : TypeError: 'dict_values' object does not support indexing when using python 3. 2.3

python - 如何摆脱科学记数法并在 Python 中转换为 float ?