如何在模型中存储局部变量?

时间:2018-06-13 03:32:23

标签: python flask sqlalchemy

我有一个模特:

class IceCream(db.Model):
    flavor = db.Column(db.Integer, default=2)

    licks = 0

    def update_licks(self):
        self.licks += 1

我的目标是我有一些存储在数据库中的变量,以及其他不存在的变量。但是,每次加载对象时,licks都会重置为0。如何修复此问题,以便在服务器运行时变量不会重置?

1 个答案:

答案 0 :(得分:1)

您要查找的是一个静态变量,每次创建新对象时都不会创建该变量。你确实创建了一个静态变量。但是,问题是您在编写self.licks时创建了一个实例变量。所以,现在你有两个变量,一个是名为licks的静态变量,可以通过IceCream.licks访问,另一个是可以通过对象内的self.licks访问的实例变量。因此,如何修复它是修改您的代码如下

class IceCream(db.Model):
    flavor = db.Column(db.Integer, default=2)

    licks = 0

    def update_licks(self):
        IceCream.licks += 1