要记录一张表中字段的更新情况,可以在每次更新字段时,将更新的信息存储到另外一张记录表中。

下面是一个使用Python Flask框架的示例代码:

from flask import Flask, request
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    age = db.Column(db.Integer)

class UpdateRecord(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    field_name = db.Column(db.String(50))
    old_value = db.Column(db.String(50))
    new_value = db.Column(db.String(50))

@app.route('/update_user', methods=['POST'])
def update_user():
    user_id = request.form.get('user_id')
    field_name = request.form.get('field_name')
    new_value = request.form.get('new_value')

    user = User.query.get(user_id)
    old_value = getattr(user, field_name)

    setattr(user, field_name, new_value)
    db.session.commit()

    update_record = UpdateRecord(user_id=user_id, field_name=field_name, old_value=old_value, new_value=new_value)
    db.session.add(update_record)
    db.session.commit()

    return 'User updated successfully'

if __name__ == '__main__':
    db.create_all()
    app.run()

在上面的示例中,我们定义了一个User模型和一个UpdateRecord模型,分别表示用户和字段更新记录。在/update_user路由中,我们首先获取要更新的用户ID、字段名和新值。然后,我们通过User.query.get(user_id)获取要更新的用户对象,并使用getattr(user, field_name)获取字段的旧值。

接下来,我们使用setattr(user, field_name, new_value)更新用户对象的字段值,并使用db.session.commit()提交更改。然后,我们创建一个UpdateRecord对象,将用户ID、字段名、旧值和新值存储到UpdateRecord表中,并使用db.session.add(update_record)db.session.commit()保存更改。

这样,每次更新用户字段时,都会在UpdateRecord表中记录更新的信息。您可以根据需要扩展该示例以满足您的需求。

Python Flask: 使用数据库记录字段更新日志

原文地址: https://www.cveoy.top/t/topic/o8c3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录