我正在使用Flask将一些数据处理代码公开为Web服务。我想要一些Flask函数可以访问的类变量。
让我向你介绍我遇到的问题:
from flask import Flask app = Flask(__name__) class MyServer: def __init__(self): globalData = json.load(filename) @app.route('/getSomeData') def getSomeData(): return random.choice(globalData) #select some random data to return if __name__ == "__main__": app.run(host='0.0.0.0')
当我getSomeData()在Flask外面跑步时,它可以正常工作。但是,当我与Flask一起运行时,我得到了500 internal server error。这里没有魔术,而且Flask不知道应该初始化一个MyServer对象。如何将MyServer的实例提供给app.run()命令?
getSomeData()
Flask
500 internal server error
app.run()
我可以认输,然后globalData放入数据库。但是,还有其他方法吗?
globalData
你可以MyServer在端点范围之外创建一个实例,并访问其属性。这为我工作:
class MyServer: def __init__(self): self.globalData = "hello" from flask import Flask app = Flask(__name__) my_server = MyServer() @app.route("/getSomeData") def getSomeData(): return my_server.globalData if __name__ == "__main__": app.run(host="0.0.0.0")