Flask全局python对象
我正在制作一个简单的FlaskRESTAPI,它处理一些文本并返回一些json 处理文本的所有代码都在一个类中: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
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
重构为一个函数,这样就不会创建它并在实例化时加载数据