使用 from flask_smorest import Blueprint,from flask.views import MethodView,写一个接口,将文件下多张图片都返回给前端展示出来,需不需要使用 from flask import send_from_directory, send_file 包来发送图片呢,代码实现内容:如果想要返回多张图片给前端展示,可以使用 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/p0TG 著作权归作者所有。请勿转载和采集!

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