Обновление строки Flask-sqlalchmey отражается в sqlite DB - PullRequest
1 голос
/ 24 июня 2019

Я пытался обновить строку в базе данных SQLite из приложения фляги, используя flask-sqlalchemy . Я пытаюсь сделать то же самое с 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 Вопросе

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

Может ли кто-нибудь сказать мне возможную причину и решение? Если я что-то упустил, переоценил или недооценил конкретный момент, дайте мне знать в комментариях.

...