我试图使用 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
有人可以告诉我可能的原因和解决方案吗?如果我错过了任何内容,或者过分强调或强调了一点,请在评论中告诉我。