Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flask全局python对象_Python_Python 3.x_Flask - Fatal编程技术网

Flask全局python对象

Flask全局python对象,python,python-3.x,flask,Python,Python 3.x,Flask,我正在制作一个简单的FlaskRESTAPI,它处理一些文本并返回一些json 处理文本的所有代码都在一个类中: class TextParser: def __init__(self, file_in, ....): # COSTLY FUNCTION THAT LOADS DATA FROM MULTIPLE SOURCES def parse_text(self, text): # fast function that returns the wanted jso

我正在制作一个简单的FlaskRESTAPI,它处理一些文本并返回一些json

处理文本的所有代码都在一个类中:

class TextParser:
  def __init__(self, file_in, ....):
    # COSTLY FUNCTION THAT LOADS DATA FROM MULTIPLE SOURCES

  def parse_text(self, text):
    # fast function that returns the wanted json

API也包含在python包中,因此它从python代码开始,如下所示:


def start_api(path_to_load="file_one.in", ...):
  app = Flask(__name__, static_folder="static")
  app.config["JSON_AS_ASCII"] = False

  # I load the parser here as it takes a while to load
  text_parser = TextParser()
  # I also register some blueprints
  app.register_blueprint(...)
  app.run(host="localhost", port=5000)
我把我的一些代码按原样删减了。我想要的是加载
TextParser
一次,然后能够在蓝图中使用
parse\u text
方法,无需再次实例化对象,因为它加载的数据是静态的

我怎样才能在烧瓶中实现这一点?

由官员提出

类flask.Blueprint(名称、导入名称、静态文件夹=None、静态url路径=None、模板文件夹=None、url前缀=None、子域=None、url默认值=None、根路径=None)

Blueprint
的构造函数不能为共享对象接受任何参数(大多数参数必须是
String

因此,您可以创建一个新的
MyBlueprint
类,该类扩展
Blueprint
,并可以存储共享对象

我的建议是将
TextParser
重构为一个函数,这样就不会创建它并在实例化时加载数据