web2py内建grid组件数据导出增加日志功能

IT系统的"数据导出"属于核心操作,很多安全要求较高的系统甚至采用了“金库模式”去管理数据导出,这里为grid组件的数据导出,增加日志记录功能:

一、db文件中单独增加日志表

db.define_table('OP_log',
       Field('Op_type', 'string', label='类型', requires=IS_IN_SET(['数据导出', '业务操作'])),
       Field('Op_content','text',label='内容'),
       Field('Op_user','string',label='用户'),
       Field('Op_time','datetime',label='时间'))

二、gluon文件下的sqlhtml.py修改

找到:if export_type in exportManager and exportManager[export_type]:开始修改:

            if export_type in exportManager and exportManager[export_type]:

                if keywords:
                    try:
                        ......

                        ......

                        rows = dbset.select(left=left, orderby=orderby,
                                            cacheable=True, *selectable_columns)

                        # todo 插入日志
                        db.OP_log.insert(Op_type='数据导出',
                                         Op_content='['+request.controller+']['+request.function+']['+keywords+']',
                                         Op_user=current.auth.user.first_name,
                                         Op_time=datetime.datetime.today(),)
                        ......

                        ......
                else:

                        ......

                        ......
                    rows = dbset.select(left=left, orderby=orderby,
                                        cacheable=True, *selectable_columns)
                    # todo 插入日志
                    db.OP_log.insert(Op_type='数据导出',
                                     Op_content='[' + request.controller + '][' + request.function + '][全量]',
                                     Op_user=current.auth.user.first_name,
                                     Op_time=datetime.datetime.today(), )
'['+request.controller+']['+request.function+']记录操作结点
['+keywords+']'记录了数据范围

三、补充说明

系统内有其他地方有参考之前文章:《web2py不使用grid,完全自定义导出excel文件的方法》数据的,亦可在导出数据时,增加日志》

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值