werkzeug.utils.import_string的用处

本文介绍了werkzeug.utils模块中的import_string函数,该函数可以根据字符串导入指定的对象,如类或函数.适用于使用import路径作为端点或其他类似场景.文章还提供了一个实际的例子,展示了如何通过这个函数导入一个配置类.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def from_object(self, obj):
    if isinstance(obj, string_types):
       obj = import_string(obj)
   for key in dir(obj):
     if key.isupper():
         self[key] = getattr(obj, key)

    在flask app.py的源代码中看到import_string,往上看是出自werkzeug.utils,看了下文档:

werkzeug.utils.import_string(import_name, silent=False)

Imports an object based on a string. This is useful if you want touse import paths as endpoints or something similar. An import path canbe specified either in dotted notation (xml.sax.saxutils.escape)or with a colon as object delimiter (xml.sax.saxutils:escape).

If silent is True the return value will be None if the import fails.

Parameters:
  • import_name – the dotted name for the object to import.
  • silent – if set to True import errors are ignored andNone is returned instead.
Returns:

imported object

    用cmd测试了下werkzeug.utils.import_string()就是用来导入函数的

>>> import_string('config.TestingConfig')
<class config.TestingConfig at 0x0000000002A8F708>


import os import uuid from werkzeug.datastructures import FileStorage from flask import jsonify from flask_restx import Resource from flask_restx.reqparse import RequestParser from flask_restx.reqparse import Argument from apps.api.utils.image_process import image_filtering, image_split, images_scan from configs import TEMP_DIR class ImgMarkHandler(Resource): def __init__(self, api=None, *args, **kwargs): self.parser = RequestParser(argument_class=Argument) self.parser.add_argument('images', type=FileStorage, required=True, location='files', action='append') self.parser.add_argument('image_type', type=int, default=1) super(ImgMarkHandler, self).__init__(api=api, args=args, kwargs=kwargs) def post(self): try: args_data = self.parser.parse_args() except Exception as e: return jsonify(code=5000, msg="参数错误") images = args_data["images"] image_type = args_data['image_type'] images_path_list = [] results = [] for img in images: image_path = '%s/%s.png' % (TEMP_DIR, str(uuid.uuid4())) img.save(image_path) images_path_list.append(image_path) if image_type == 2: new_image_path = image_filtering(image_path, image_type) image_list = image_split(new_image_path, image_type) coordinates = images_scan(image_list, new_image_path) # os.remove(image_path) # os.remove(new_image_path) else: image_list = image_split(image_path) coordinates = images_scan(image_list) os.remove(image_path) results.append({"coordinates": coordinates, "img_name": img.filename}) return jsonify(code=1000, msg="success", results=results) import os import time import uuid import cv2 import numpy as np import onnxruntime as rt from torchvision import transforms from configs import BASE_D
03-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值