Flask-sqlalchmey行更新已反映在sqlite DB中

时间:2019-06-24 12:34:37

标签: python python-3.x sqlalchemy flask-sqlalchemy

我试图使用 flask-sqlalchemy 从flask应用程序更新SQLite DB中的行。我试图对python 3.6.8做同样的事情。但是该行没有更新,也没有任何异常。问题put中的代码正在发生。

代码

db = SQLAlchemy(app)

class MakeTemplate(Resource):


    def __init__(self):
        self.parser = reqparse.RequestParser()    

    def put(self):
        self.parser = reqparse.RequestParser()
        self.parser.add_argument('editProducte', type=str, required=True)
        self.parser.add_argument('editData', required=True)
        args = parser.parse_args()

        editProducte = args["editProduct"]
        new_json = args["editData"]

        model_json = models.Template.query.filter_by(
            product_name=editProducte).first()

        model_json.json_template = "{'new' :\" test\" }"
        model_json.update_date = datetime.datetime.utcnow()

        db.session.commit()


        return jsonify({"data": new_json})

我也尝试过此stackoverflow Question

中提到的代码
def put(self):

    parser.add_argument('editInvoice', type=str, required=True)
    parser.add_argument('editData', required=True)
    args = parser.parse_args()

    editInvoice = args["editInvoice"]
    new_json = args["editData"]



    rows_changed = models.Template.query.filter_by(
        invoice_name=editInvoice).update(dict(json_template={}))


    db.session.commit()

这是定义模型的models.py

class Template(app.db.Model):
    id = app.db.Column(app.db.Integer, primary_key=True)
    created_date = app.db.Column(DATETIME, default=datetime.datetime.utcnow)
    update_date = app.db.Column(DATETIME)

    company = app.db.Column(VARCHAR)
    invoice_name = app.db.Column(VARCHAR, nullable=False, unique=True)

    image_location = app.db.Column(VARCHAR, nullable=True)
    json_template = app.db.Column(JSON, nullable=False)

    def __repr__(self):
        return '<User %r>' % self.company

有人可以告诉我可能的原因和解决方案吗?如果我错过了任何内容,或者过分强调或强调了一点,请在评论中告诉我。

0 个答案:

没有答案