类变量返回错误?

2024-10-02 02:27:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个类来跨路由共享变量

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页面出现问题。为什么会发生这种情况?我如何修复它


Tags: self路由datadefstatusokpasswordclass
1条回答
网友
1楼 · 发布于 2024-10-02 02:27:42

使用全局变量保存状态只能在狭窄的环境下工作

flask开发服务器喜欢在检测到更改时重新启动自己,这可能是您偶尔看到的[]。您可以尝试使用 no-reload运行以禁用该行为

如果您正在进行原型设计并希望自动重新加载,那么请尝试将数据保存在一个您可以根据需要读取(和写入)的文件中,而不是使用全局文件。如果你关心性能,试试看。你可能会感到惊喜

相关问题 更多 >

    热门问题