06-09 日志管理

知识点

知识点1:上下文全局变量的使用

知识点2: 日志记录功能开发流程

上下文全局变量的使用

# E:\study\mooc\MicroMovie200731\app\admin\views.py

# 上下文处理,可以定义并封装全局变量应用于模板
@admin.context_processor
def tpl_extra():
    data = dict(
        online_time=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    )
    return data
# E:\study\mooc\MicroMovie200731\app\templates\admin\admin.html
                                

{{ session['admin'] }} {{ online_time }}

运行效果:

06-09 日志管理_第1张图片

 操作日志记录

  • 操作日志仅用于记录管理员用户的后台操作,例如添加/修改标签, 因此没有表单模型.
  • 操作日志在进行添加/修改标签等操作中产生,因此产生日志并存入数据库的过程在相应的操作函数中

日志生成:

# 标签管理
@admin.route("/tag/add/", methods=['GET', 'POST'])  # 添加标签
@admin_login_req
def tag_add():
    form = TagForm()
    if form.validate_on_submit():
        data = form.data
        tag = Tag.query.filter_by(name=data["name"]).count()
        if tag == 1:
            flash("标签已经存在,请重新输入!", "err")  # 失败消息闪现
            return redirect(url_for("admin.tag_add"))
        tag = Tag(name=data["name"])    # 存库操作
        db.session.add(tag)
        db.session.commit()
        flash("添加成功!", "ok")    # 成功消息闪现
        
        oplog = Oplog(          # 记录添加标签的操作日志
            admin_id=session["admin_id"],
            ip=request.remote_addr,
            reason="添加标签: %s" % data["name"]
        )
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for("admin.tag_add"))
    return render_template("admin/tag_add.html", form=form)

 

日志列表

# 日志管理
@admin.route("/oplog/list//", methods=['GET'])  # 操作日志
@admin_login_req
def oplog_list(page=None):
    if page is None:
        page = 1
    page_data = Oplog.query.join(
        Admin
    ).filter(
        Admin.id == Oplog.admin_id,
    ).order_by(
        Oplog.addtime.desc()
    ).paginate(page=page, per_page=10)
    return render_template("admin/oplog_list.html", page=1, page_data=page_data)

 

 日志列表html

管理员登录日志

会员登录日志

你可能感兴趣的:(#,Flask,构建微电影视频网站)