如果想要返回多张图片给前端展示,可以使用send_from_directory函数来发送图片。下面是一个基于Flask-Smorest和Flask的代码示例:

from flask import Flask, send_from_directory
from flask.views import MethodView
from flask_smorest import Blueprint

app = Flask(__name__)

# 创建一个蓝图
api_bp = Blueprint('api', __name__, url_prefix='/api')

# 设置静态文件夹的路径
UPLOAD_FOLDER = 'path_to_folder'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER


@api_bp.route('/images/<path:filename>')
def get_image(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename)


@app.route('/')
def index():
    return "Hello, World!"


class ImageAPI(MethodView):

    def get(self):
        image_urls = ['image1.jpg', 'image2.jpg', 'image3.jpg']
        return {'images': [api_bp.url_for('api.get_image', filename=url) for url in image_urls]}


api_bp.add_url_rule('/images', view_func=ImageAPI.as_view('images'))

app.register_blueprint(api_bp)

if __name__ == '__main__':
    app.run(debug=True)

上述代码中,UPLOAD_FOLDER变量指定了存储图片的文件夹路径。get_image函数使用send_from_directory函数将图片发送给前端,其中app.config['UPLOAD_FOLDER']指定了文件夹的路径。

ImageAPI是一个继承自MethodView的类,用于处理获取图片列表的请求。get方法返回一个包含图片URL的响应,其中URL通过api_bp.url_for函数生成。

api_bp蓝图中,使用add_url_rule函数将ImageAPI视图类与/images路径关联起来。接着,通过register_blueprint函数将蓝图注册到应用中。

这样,当访问/api/images时,会返回一个包含所有图片URL的JSON响应,前端可以使用这些URL来加载和展示图片


原文地址: https://www.cveoy.top/t/topic/iiJ3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录