请有人在那里因为我现在拔出我的头发: 我想从数据库中提取的列表中提取图片,并将它们存储在JavaScript数组中以进行幻灯片放映。我正在使用web2py框架。 的 CONTROLLER
>`def form1Details():
form=db.compForm(request.args(0))
forms=db(db.compFormPages.formName==form.id).\
select(db.compFormPages.ALL)
return locals()
`
图像是可变形式的,所以我想在我的视图中显示它们,这样每张图片都单独存储在一个JavaScript数组中,用于下面的幻灯片放映
查看
>`{{for pic in forms:}}
<script>
function slideShow()
{
images = ["{{=URL('download',args=pic.formImage)}}",
"{{=URL('download',args=pic2.formImage)}}"],
"{{=URL('download',args=pic3.formImage)}}"];
descriptions=['{{=pic.formTitle}}',
'{{=pic2.formTitle}}',
'{{=pic2.formTitle}}';
...............
...............
</script>
}`
如何在上面的视图中单独提取它们以获取最新信息,我可以使用我能得到的所有帮助,谢谢。
答案 0 :(得分:0)
假设您的目标是一些Javascript代码,其中包含一个包含URL数组的变量和另一个包含描述数组的变量,一种简单的方法是使用ASSIGNJS
帮助程序,它将编写Javascript变量并生成它们的通过将关联的Python数据结构转换为JSON来实现值。所以,在视图中:
<script>
function slideShow() {
{{=ASSIGNJS(images=[URL('default', 'download', args=form.formImage)
for form in forms],
descriptions=[form.formTitle for form in forms])}}
...
}
</script>
这会产生这样的Javascript:
var images = ["/myapp/default/download/image1", "/myapp/default/download/image2", ...];
var descriptions = ["Title 1", "Title 2", ...]
您也可以考虑生成一个包含每个图像的URL和描述的Javascript对象数组:
{{=ASSIGNJS(images=[dict(url=URL('default', 'download', args=form.formImage),
description=form.formTitle)
for form in forms])}}
将产生:
var images = [{"url": "/myapp/default/download/image1", "description": "Title 1"}, ...];