我可以限制 flask rest Api 中的 post 方法向数据库添加其他数据吗?

Can I restrict post method in flask restApi from adding another data to the database?

鉴于我当前在 db 中的数据,我想限制 post 方法向数据库添加其他数据。我想要的是限制 post 方法添加另一个数据,并且只更新数据库中的现有数据。

代码:

    def get(self):
        predict = PredictModel.query.all()
        return {'Predict': list(x.json() for x in predict)}
    def post(self):
        data = request.get_json()
        new_predict = PredictModel(data['timelag1'],data['timelag2'],data['timelag3'],data['timelag4'],data['timelag5'])
        db.session.add(new_predict)
        db.session.commit()
        db.session.flush()
        return new_predict.json(),201

数据库中的当前数据:

  "Predict": [
        {
            "timelag1":1,
            "timelag2": 1,
            "timelag3": 1,
            "timelag4": 1,
            "timelag5": 1
        }
    ]
}

用户输入另一个数据后数据库中的数据:

  "Predict": [
        {
            "timelag1":2,
            "timelag2": 2,
            "timelag3": 2,
            "timelag4": 2,
            "timelag5": 2
        }
    ]
}

我建议阅读这个关于如何进行数据库操作的答案(尤其是后面的): Flask-SQLalchemy update a row's information

您将需要某种主键或唯一标识符来指定您要更改的行 - 类似于“id” 这是一些示例代码,如果您根据自己的情况对其进行调整,它们可能会起作用:

instance = User.query.filter(User.id==id)
data=instance.update(dict(json_data))
db.session.commit()

num_rows_updated = User.query.filter_by(username='admin').update(dict(email='my_new_email@example.com')))
db.session.commit()