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