我正在使用一个类来跨路由共享变量
class Manager():
def __init__(self):
self.passwords = []
def setRestock(self, password: str, copies: str):
self.passwords.append(password)
这是我们班代码的一部分。在我用几个密码设置self.passwords的值之后,它看起来是这样的:
['testpassword1', 'testpassword2', 'testpassword3']
我已经创建了一个返回self.passwords值的路由
@bp.route('/getPasswords', methods=['GET'])
def getPasswords():
return jsonify({
'status': 'ok',
'data': manager.passwords
}), 200
预期结果应该是:
{"data":['testpassword1', 'testpassword2', 'testpassword3'],"status":"ok"}
当我向该路由发出请求时,会显示预期的结果,但在每5-6次请求之后,它会随机返回{"data":[],"status":"ok"}
。然后再次发出请求返回正确的内容
我的问题是self.passwords被随机返回为[]
,这导致HTML页面出现问题。为什么会发生这种情况?我如何修复它
使用全局变量保存状态只能在狭窄的环境下工作
flask开发服务器喜欢在检测到更改时重新启动自己,这可能是您偶尔看到的
[]
。您可以尝试使用no-reload
运行以禁用该行为如果您正在进行原型设计并希望自动重新加载,那么请尝试将数据保存在一个您可以根据需要读取(和写入)的文件中,而不是使用全局文件。如果你关心性能,试试看。你可能会感到惊喜
相关问题 更多 >
编程相关推荐