python - Flask-appbuilder 如何为表上的任何行更改添加审计日志?
问题描述
我正在尝试使用 flask-appbuilder 构建一个用户表,并希望在此表上记录任何插入、更新、删除更改。我下面的代码扩展了 Auditmixin,以便我将有自动列来记录谁/何时创建/更新表,但我无法记录行更改历史记录以供审计。
如何在 Flask-appbuilder 中添加诸如侦听器之类的东西来触发对文件或数据库的日志记录?
模型.py
from flask_appbuilder import Model
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from flask_appbuilder.models.mixins import AuditMixin
class MyGenericModel(AuditMixin, Model):
id = Column(Integer, primary_key=True)
age = Column(Integer)
name = Column(String(100))
视图.py
from flask import render_template
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder import ModelView, ModelRestApi
from . import appbuilder, db
from app.models import MyGenericModel
class MyModelView(ModelView):
datamodel = SQLAInterface(MyGenericModel)
@appbuilder.app.errorhandler(404)
def page_not_found(e):
return (
render_template(
"404.html", base_template=appbuilder.base_template, appbuilder=appbuilder
),
404,
)
db.create_all()
appbuilder.add_view(
MyModelView,
"My View",
icon="fa-folder-open-o",
category="My Category",
category_icon='fa-envelope'
)
先感谢您。
解决方案
推荐阅读
- sql - 如何一一并发运行SQL查询
- react-native - 导航到登录屏幕后重置堆栈
- python - 使用 python pandas 检查两列之间的数据匹配和不匹配
- c# - Unity - 确定代码生成的圆形平面网格的 UV
- powershell - 无法在 AD 中向用户附加描述
- java - java.lang.NoSuchMethodException:java.util.HashMap$EntrySet。
() - python - Matplotlib/Seaborn 意大利面条图 - 显示无值
- c# - 找到对象后如何更新特定属性。收到错误方法 C_SetAttributeValue 返回 CKR_ATTRIBUTE_READ_ONLY
- sql-delete - 如何从批量大小为 10000 的堆中删除行
- terraform - 将公共 IP 输出与服务器名称连接起来