Flask - 调用函数传递给类

时间:2016-02-28 23:22:49

标签: python flask

我有一种情况需要让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的全局变量,但它看起来并不适用于我需要的东西。

1 个答案:

答案 0 :(得分:0)

您可以在foo函数中将__init__设为全局:

def __init__(self,myFunc):
    global foo
    app.run(host='0.0.0.0',debug=False)
    foo = myFunc

它不好,但应该有用。或者,只需使用app configuration传递它。