您可以通过以下方式来实现:

  1. 定义一个新的字段,命名为image_type,用于表示图片类型(1、2或3)。
  2. UploadArgSchema中添加image_type字段,并设置为必填字段。
  3. UploadArgSchema中添加一个自定义验证器,确保image_type字段只能选择1、2或3。
  4. 根据image_type的值,决定是使用默认图片还是上传客户端文件夹中的图片。

下面是修改后的代码示例:

from flask_smorest.fields import Upload
from marshmallow import validate

class UploadArgSchema(ArgSchema):
    file = Upload(
        description='待上传文件', required=True, error_messages={'required': '待上传文件不能为空'}
    )
    image_type = fields.Integer(
        description='图片类型(1、2或3)', required=True,
        validate=validate.OneOf([1, 2, 3]), error_messages={'required': '图片类型不能为空'}
    )

    @post_load
    def process_image(self, data, **kwargs):
        image_type = data.get('image_type')
        file = data.get('file')

        if image_type == 1:
            # 使用默认图片1
            save_image(file, 'default_image1.jpg')
        elif image_type == 2:
            # 使用默认图片2
            save_image(file, 'default_image2.jpg')
        elif image_type == 3:
            # 上传客户端文件夹中的图片
            save_image(file, 'client_folder_image.jpg')
        
        return data

def save_image(file, filename):
    # 在这里实现保存图片的逻辑
    pass

在上面的代码中,我们添加了一个image_type字段来表示图片类型,使用validate.OneOf([1, 2, 3])验证器确保只能选择1、2或3。在process_image方法中,根据image_type的值来决定保存的图片文件名,然后调用save_image函数保存图片。

请注意,save_image函数是一个示例,您需要根据实际需求来实现该函数,以保存图片到指定的位置

from flask_smorestfields import Uploadclass UploadArgSchemaArgSchema file = Upload description=待上传文件 required=True error_messages=required 待上传文件不能为空 如果fule字段有三个选择1和2都是上传前端默认图片如果是3的话就上传客户端

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

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