Groupby 和在 web2py 中
Groupby and having in web2py
我的table:
db.define_table('test', Field('name'), Field('pics', 'upload'))
我想随机显示 name
中的 5 个名字,然后我想显示 pics
中的一张图片,该图片的 ID 与任意一个随机选择的名字相匹配。
这是动作:
def index():
rows = db().select(db.test.ALL, limitby=(0, 5), orderby='<random>')
myorder = rows==id
rows_two = db().select(db.test.ALL, limitby=(0, 1), groupby=db.test.pics, having=myorder)
return locals()
这是视图:
{{for i in rows_two:}}
<div style="text-align:left">
<img width="200px"
src="{{=URL('download', args=i.pics)}}" />
</div>
{{pass}}
{{block left_sidebar}}
{{for row in rows:}}
{{=LI(A(row.name, _href=URL('other', args=row.id)))}}
{{pass}}
{{end}}
我想要实现的是显示一张来自 pics
的图像,该图像的 ID 与随机显示的名称之一相匹配。当然,这是行不通的,所以我很感激这方面的帮助。非常感谢。
好像不需要rows_two
,因为rows
中的每条记录都已经包含了一张图片,所以你可以使用其中任何一张。因此,将您的代码更改为以下内容:
def index():
rows = db().select(db.test.ALL, limitby=(0, 5), orderby='<random>')
return locals()
在视图中:
<div style="text-align:left">
<img width="200px"
src="{{=URL('download', args=rows[0].pic)}}" />
</div>
请注意,该视图仅显示 rows
中第一条记录的图片。
我的table:
db.define_table('test', Field('name'), Field('pics', 'upload'))
我想随机显示 name
中的 5 个名字,然后我想显示 pics
中的一张图片,该图片的 ID 与任意一个随机选择的名字相匹配。
这是动作:
def index():
rows = db().select(db.test.ALL, limitby=(0, 5), orderby='<random>')
myorder = rows==id
rows_two = db().select(db.test.ALL, limitby=(0, 1), groupby=db.test.pics, having=myorder)
return locals()
这是视图:
{{for i in rows_two:}}
<div style="text-align:left">
<img width="200px"
src="{{=URL('download', args=i.pics)}}" />
</div>
{{pass}}
{{block left_sidebar}}
{{for row in rows:}}
{{=LI(A(row.name, _href=URL('other', args=row.id)))}}
{{pass}}
{{end}}
我想要实现的是显示一张来自 pics
的图像,该图像的 ID 与随机显示的名称之一相匹配。当然,这是行不通的,所以我很感激这方面的帮助。非常感谢。
好像不需要rows_two
,因为rows
中的每条记录都已经包含了一张图片,所以你可以使用其中任何一张。因此,将您的代码更改为以下内容:
def index():
rows = db().select(db.test.ALL, limitby=(0, 5), orderby='<random>')
return locals()
在视图中:
<div style="text-align:left">
<img width="200px"
src="{{=URL('download', args=rows[0].pic)}}" />
</div>
请注意,该视图仅显示 rows
中第一条记录的图片。