当前位置: 首页 > news >正文

订单后台管理系统-day05用户模块查看与删除

查看详情

account/info.html

{% extends "common/layout_main.html" %}
{% block content %}{% include 'common/tab_account.html' %}
​<div class="row m-t"><div class="col-lg-12"><div class="row"><div class="col-lg-12"><div class="m-b-md"><a class="btn btn-outline btn-primary pull-right"href="{{ url_for('manage.account_edit') }}?id={{ info.id }}"><i class="fa fa-pencil"></i>编辑</a><h2>账户信息</h2></div></div></div><div class="row"><div class="col-lg-2 text-center"><img class="img-circle circle-border"src="{{ url_for('static', filename='images/common/avatar.png') }}" width="100px"height="100px"></div><div class="col-lg-10"><p class="m-t">姓名:{{ info.nickname }}</p><p>手机:{{ info.mobile }}</p><p>邮箱:{{ info.email }}</p></div></div><div class="row m-t"><div class="col-lg-12"><div class="panel blank-panel"><div class="panel-heading"><div class="panel-options"><ul class="nav nav-tabs"><li class="active"><a href="javascript:void(0);" data-toggle="tab" aria-expanded="false">访问记录</a></li></ul></div></div><div class="panel-body"><div class="tab-content"><div class="tab-pane active"><table class="table table-bordered"><thead><tr><th>访问时间</th><th>访问Url</th></tr></thead><tbody>{% if access == None %}<tr><td colspan="2">暂无数据</td></tr>{% else %}{% for item in access %}<tr><td>{{ item.created_at }}</td><td>{{ item.target_url }}</td></tr>{% endfor %}{% endif %}</tbody></table></div></div></div></div></div></div></div></div>
{% endblock %}
​

admin.py

# 用户详情
@manage_bp.route('/account/info')
def account_info():resp_data = {}# 由于数据库里面的id是从1开始的,如果id小于1就返回到用户列表页面u_id = int(request.args.get('id', 0))if u_id < 1:return redirect(url_for('manage.account_list'))# 如果有id就进行查询用户,没有就回跳到用户列表页面user_obj = User.query.get(u_id)if not user_obj:return redirect(url_for('manage.account_list'))resp_data['info'] = user_obj# 获取当前用户的访问记录access_obj = AccessLog.query.filter_by(uid=u_id).order_by(AccessLog.created_at.desc()).limit(5)
​if not access_obj:resp_data['access'] = Noneresp_data['access'] = access_obj
​return ops_render('account/info.html', resp_data)

删除用户(修改状态)

  • 这里的删除,指的是修改用户的可用状态,其实通常我们不推荐真正的删除数据,所有的删除都可以用隐藏的状态,来进行操作。不让用户看到,就是没有

@manage_bp.route('/account/ops', methods=['PUT'])
def account_ops():resp = {'code': 200, 'msg': '操作成功!', 'data': {}}req = request.values# 在前端页面显示的同一个元素,但是传递的值会根据后台的状态而改变# 这里我们需要前端的配合,传递remove则执行删除操作,recover为恢复操作u_id = req['id'] if 'id' in req else 0act = req['act'] if 'act' in req else ''if not u_id:resp['code'] = -1resp['msg'] = '操作失败!'return jsonify(resp)if act not in ['remove', 'recover']:resp['code'] = -1resp['msg'] = '操作失败!'return jsonify(resp)user_obj = User.query.get(u_id)if not user_obj:resp['code'] = -1resp['msg'] = '指定账户不存在!'return jsonify(resp)if act == 'remove':user_obj.status = 0elif act == 'recover':user_obj.status = 1db.session.commit()return jsonify(resp)
  • 这里展示部分templates/account/index.html文件核心代码

  • 根据后台传递过来的值,判断显示什么图标

 {% if foo.status == 1 %}<a class="m-l remove" href="javascript:void(0);" data-id="{{ foo.id }}"><i class="fa fa-trash fa-lg"></i></a>{% else %}<a class="m-l recover" href="javascript:void(0);" data-id="{{ foo.id }}"><i class="fa fa-rotate-left fa-lg"></i></a>{% endif %}
  • 在js代码中,使用jquery获取用户点击的元素,根据元素的不同,调用ajax请求,传递不同的参数

$('.remove').click(function () {that.ops('remove', $(this).attr('data-id'))
});
​
$('.recover').click(function () {that.ops('recover', $(this).attr('data-id'))
});

http://www.xdnf.cn/news/1415017.html

相关文章:

  • Kubernetes 存储
  • 【语法】C++的异常
  • IIC接口的mpu6050六轴模块(8针脚)引脚使用说明
  • Java中的异常,枚举,泛型,代理
  • 单表查询-group by rollup优化
  • 责任链模式实践-开放银行数据保护及合规
  • 一键获取电商平台商品原数据:item_get_app接口实操讲解
  • [Plecs基础知识系列]建立自定义模块/子系统(Subsystem)
  • 基于路测点云标注生成OpenDrive地图的全流程解析
  • 微服务01
  • Spring Cloud Alibaba Seata 分布式事务(六)
  • 索引性能分析
  • 【开题答辩全过程】以 基于SSM的拾光咖啡厅管理系统的设计与实现为例,包含答辩的问题和答案
  • Nano Banana:下一代AI图像创作与编辑指南
  • Linux网络编程04:网络基础(万字图文解析)
  • AFSIM仿真脚本生成(三)脚本解析技术加速验证过程
  • 有关指针的认知盲区:指针大小,决定因素,指针变量
  • EtherCAT主站IGH-- 44 -- IGH之slave_config.h/c文件解析
  • 目标检测算法YOLOv4详解
  • Langchain指南-关键特性:使用聊天模型调用工具
  • 用 MATLAB 实现遗传算法求解一元函数极值:从代码到实践
  • STL常见容器介绍
  • 从RNN到Transformer
  • @Transactional如何对分布式事务生效
  • Redis实现短信登录
  • 需要固定一个指针,再遍历另一个指针的都可以用双指针方法
  • 【系列11】端侧AI:构建与部署高效的本地化AI模型 第10章:LLM端侧部署
  • 二.Shell脚本编程
  • 在AlmaLinux或CentOS 8上编译安装ZLMediaKit流媒体服务器
  • CatBoost vs XGBoost:两大Boosting框架的全面对比