我有一种情况需要让Flask在另一个类中调用一个函数。例如,我的" WebServer" class接受一个参数,它是另一个函数的处理程序。该类的构造函数将此函数参数存储到名为foo的变量中,理想情况下,Flask可以稍后调用。例如:
from flask import Flask, render_template, url_for, request, jsonify
app = Flask(__name__)
foo = None
class WebServer:
@app.route("/")
def index():
foo()
def __init__(self,myFunc):
app.run(host='0.0.0.0',debug=False)
foo = myFunc
现在显然由于Flask的应用程序上下文而无法正常工作。在这种情况下,foo总是"无"。做这样的事情的最佳方法是什么?我试着研究Flask的全局变量,但它看起来并不适用于我需要的东西。
答案 0 :(得分:0)
您可以在foo
函数中将__init__
设为全局:
def __init__(self,myFunc):
global foo
app.run(host='0.0.0.0',debug=False)
foo = myFunc
它不好,但应该有用。或者,只需使用app configuration传递它。