如何在烧瓶中的 2 API 定义之间共享变量?

How to share variables between 2 API definitions in flask?

我的代码是这样的。我正在使用烧瓶。

import *

def model_loading():
    ##function###

@app.route('training', methods=['GET', 'POST', 'OPTIONS'])
def training():
    ###function###
    model_loading()

@app.route('prediction', methods=['GET', 'POST', 'OPTIONS'])
def prediction():
    ###function###
    models_out.predict()

if __name__ == '__main__':
    models_out = model_loading()

在上面的代码中 models_out 字典将在执行开始时加载我所有的模型。当训练新模型的请求到来时,再次训练后我将调用 model_loading 函数用新模型更新 models_out 字典。但是在调用预测请求时,我更新的新模型没有反映在 models_out 字典中。如何处理?

您可以将其定义为全局变量。

import *

models_out = None

def model_loading():
    ##function###

@app.route('training', methods=['GET', 'POST', 'OPTIONS'])
def training():
    global models_out
    ###function###
    models_out = model_loading()

@app.route('prediction', methods=['GET', 'POST', 'OPTIONS'])
def prediction():
    global models_out
    ###function###
    models_out.predict()

if __name__ == '__main__':
    models_out = model_loading()