python flask TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

python flask TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

我收到这个错误。我将 flask 与 sqlalchemy 和 flask login

一起使用

函数:

def getCoins(id):
    userr = User.query.get_or_404(id)

    if current_user.adViewStatus == 'done' or current_user.adViewStatus == 'none' or current_user.adViewStatus == 'nope':
        return redirect('/coins')
    elif current_user.adViewStatus == 'watching':
        current_user.points = current_user.points + 25
        current_user.adViewStatus = 'doneBoy'
        db.session.commit()
        return redirect('/youGotTheCoins')
    else:
        return redirect('/')

查看函数:

@application.route('/coins/get_more/view_ad/<int:id>', methods=['POST', 'GET'])
@login_required
def getCoins1(id):
    return getCoins(id)

数据库模型

class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String)
    password = db.Column(db.String)
    email = db.Column(db.String, unique=True)
    connection_type = db.Column(db.String)
    school = db.Column(db.String)
    real_name = db.Column(db.String)
    points = db.Column(db.Integer)
    adViewStatus = db.Column(db.String)
    viewer = db.Column(db.Integer)

我需要一个快速的答案! 谢谢!

默认情况下,SQL 数据库通常允许它们的列包含 None(或者,SQL 称它为 null)

如果您从未设置用户的 points 值,它将被设置为该列的默认值 - 如果您没有指定另一个值,该值通常为 null

如果您希望某些列始终具有某些值,您可能希望将其设置为不允许空值。在 SQLAlchemy 中,可以使用 Columnnullable 参数来完成,例如 points = db.Column(db.Integer, nullable=False)

您可能还想设置一个默认值,例如 points = db.Column(db.Integer, nullable=False, default=0)