从python列表中提取值作为单个实体

时间:2017-04-28 09:18:42

标签: javascript python-2.7 web2py

请有人在那里因为我现在拔出我的头发: 我想从数据库中提取的列表中提取图片,并将它们存储在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>
}`

如何在上面的视图中单独提取它们以获取最新信息,我可以使用我能得到的所有帮助,谢谢。

1 个答案:

答案 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"}, ...];