在 Web2py 上显示文件夹中的一组图像

Display a set of Images from a folder on Web2py

我是一个web2py新手,有如下疑惑。 我有一个 web2py 应用程序,它从用户那里获取一些输入,然后生成一些图像。然后将这些图像存储在私有文件夹下的文件夹中。 我想在 web2py 应用程序上显示这些图像。 我怎么做?另外,我不想将图像上传为数据库,而只是从文件夹中读取它们并直接在应用程序中显示。我从这里得到了参考: http://www.widecodes.com/0xmqqVkXkP/web2py-downloading-files-displaying-images.html

但是,不太明白。 有什么帮助吗? 提前致谢!

假设您知道文件名和路径,您可以通过调用 response.stream 的控制器操作 return 将任何文件发送到浏览器。在控制器中(例如,default.py):

import os

def serve_file():
    filename = request.args(0)
    path = os.path.join(request.folder, 'private', 'file_subfolder', filename)
    return response.stream(path)

在视图中,您将包含如下图像:

<img src="{{=URL(default, serve_file, args=filename)}}" />

如果图像是 public,更好的选择是将它们存储在 /static 文件夹中——/static 中的任何文件都可以直接通过它们 URL 提供:

<img src="{{=URL('static', 'image_files', args=filename)}}" />

此方法不需要特殊的控制器操作即可调用 response.stream